Skip to content

更新节点

更新说明

由于树是存储在数据库表中,每个节点对应一条记录,所以更新节点的操作就是更新数据库表中的对应记录。

原则上,您可以直接使用您最熟悉的数据库操作方式(比如prisma,typeORM等)来更新节点,但是需要特别需要注意以下几点:

  • 不能直接更新leftValuerightValueleveltreeId等树依赖的关健字段,因为这些字段是根据树的结构自动生成的,直接更新将导致树结构被破坏
  • 由于FlexTree的节点是可以扩展的,除了树的关键字段外,您可以自定义其他字段,这些字段是可以直接更新的。

特殊注意

不能直接更新leftValuerightValueleveltreeId等树依赖的关健字段

update

为了方便您的操作,我们提供了一个简单的update方法,只能用于更新非关键字段。

ts
async update(node: Partial<TreeNode> | Partial<TreeNode>[]): Promise<void>
  • 参数
参数 类型 默认 描述
node Partial<TreeNode> | Partial<TreeNode>[] 要更新的节点或节点数组
  • 返回
类型 描述
Promise\<void\>
  • 示例
ts
const node = await tree.update({
    id: 1,
    name: 'new name',
    description: 'new description'
});
  • 说明

    • 当您使用update方法时,会过滤掉leftValuerightValueleveltreeId等关键字段,以避免意外破坏树结构。
    • 由于update方法不会涉及到对树的结构更新,所以可以不用在write方法中执行。