elementUI el-tree remove方法删除节点失效的解决方案

Posted 长不大的大灰狼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elementUI el-tree remove方法删除节点失效的解决方案相关的知识,希望对你有一定的参考价值。

elementUI el-tree remove节点失效的解决方案


remove:删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性

当el-tree的data数据中的某个节点数据改变的时候,发现此时的remove方法不生效:this.$refs.tree.remove(cur) ,这可能时树的data和node变更不一致导致的。此时需要手写个删除方法,来完成对应节点的删除。

说明:cur: 要删除的节的data或node。

    <el-tree
       ref="tree"
      :data="data"
      show-checkbox
      node-key="id"
      default-expand-all
      :expand-on-click-node="false">
      <span class="custom-tree-node" slot-scope=" node, data ">
        <span> node.label </span>
        <span>
          <el-button
            type="text"
            size="mini"
            @click="() => append(data)">
            Append
          </el-button>
          <el-button
            type="text"
            size="mini"
            @click="() => remove(node, data)">
            Delete
          </el-button>
        </span>
      </span>
    </el-tree>


<script>
    methods: 
      append(data) 
        const newChild =  id: id++, label: 'testtest', children: [] ;
        if (!data.children) 
          this.$set(data, 'children', []);
        
        data.children.push(newChild);
      ,

      remove(node, data) 
        const parent = node.parent;
        const children = parent.data.children || parent.data;
        const index = children.findIndex(d => d.id === data.id);
        children.splice(index, 1);
      
  ;
</script>

以上是关于elementUI el-tree remove方法删除节点失效的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

elementUi的el-tree实现单选

elementui el-tree组件flex布局出现横向滚动条

elementui 后台管理系统遇到的问题(二) 树形控件 el-tree

elementui 后台管理系统遇到的问题(二) 树形控件 el-tree

elementui中el-tree实现复选框全部禁用

elementui中el-tree实现复选框全部禁用