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组件flex布局出现横向滚动条
elementui 后台管理系统遇到的问题(二) 树形控件 el-tree