updateNode v1.3.1

GitHub查看源码
按 id 不可变地更新树中的节点,仅重建从根到目标的路径。

用法

updateNode 定位 node[config.id] === targetId 的节点,以 updater 返回的新节点替换之。它仅重建从根到目标的路径,未触及的分支保持原引用;未命中时原样返回同一棵树。

example.ts
import { Tree } from '@movk/core'

const tree = [{ id: '1', children: [{ id: '2', name: '' }] }]

const next = Tree.updateNode(tree, '2', ({ node }) => ({ ...node, name: '' }))

// tree 保持不变
// next[0].children[0].name === '新'
// next[0].children[0] 是新引用,未命中的兄弟分支保持原引用

API

updateNode<T>(tree: TreeNode<T>[], targetId: string, updater: TreeTransformer<T, T>, config?: TreeConfig): TreeNode<T>[]

参数

tree
TreeNode<T>[] required
源树形结构数组。
targetId
string required
目标节点的 ID,与 config.id 指定的键名进行匹配。
updater
TreeTransformer<T, T> required
节点更新函数,对命中的节点调用,返回替换后的节点。 该函数接收一个包含以下属性的 context 对象:
config
TreeConfig
用于自定义树形结构中 id, pid, children 键名的配置对象。

返回值

TreeNode<T>[]
更新后的新树形结构数组;未命中时返回原树。

Changelog

No recent changes
Copyright © 2024 - 2026 YiXuan - MIT License