wsfe / vue-tree

使用虚拟列表优化的 Vue 树组件 Vue tree component optimized using virtual list
https://wsfe.github.io/vue-tree/
MIT License
176 stars 32 forks source link

怎么修改某个节点的数据 #85

Closed xtuer closed 1 month ago

xtuer commented 7 months ago

问题描述 使用 setData 设置数据 (非响应式的方式,没有使用 :data 进行双向绑定),怎么修改某个节点的数据例如 title,然后树上此节点马上更新看到效果呢?

需求来源,例如重命名树的节点。

组件版本

ChuChencheng commented 6 months ago

我有两个想法

  1. setData 目前执行之前会把树的 scrollTop 重置为 0 ,以防止新的数据与旧的数量不一致(更少)导致白屏问题。可以给 setData 加一个选项,不重置 scrollTop 。不过这要用户自己保证传入新的 data 数量要与旧的保持一致
  2. 加一个 API 更新 title ,比如 setNodeTitle(key: string, newTitle: string)

第一个方案比较类似 React setState 了,不过用起来会比较繁琐,要自己去找到节点