element tree 懒加载更新节点后check-change事件触发多次
**********************html******************
<el-tree
:props="props"
:load="loadOrign"
node-key="id"
show-checkbox
lazy
check-strictly
ref="orign"
:key="treeKey"
@check-change="handleChange"></el-tree>
**********************js********************
loadOrign(node, resolve) {
if (node.level === 0) {
return resolve([{ name: 'region' }]);
}
if (node.level > 1) return resolve([]);
setTimeout(() => {
const data = [{
name: 'leaf',
leaf: true
}, {
name: 'zone'
}];
resolve(data);
}, 500);
}
}
handleChange(data, checked, node) {
this.i++;
console.log(111) 《===============如果子节点有三项handleChange就会执行三遍
if(this.i%2==0){
if(checked){
this.$refs.orign.setCheckedNodes([]);《===============通过这种方式更新树形结构
和loadOrign中reslove这样是不是冲突
this.$refs.orign.setCheckedNodes([data]);
return;
//交叉点击节点
}else{
this.$refs.orign.setCheckedNodes([]);
return;
//点击已经选中的节点,置空
}
}
}
问题都在代码里了,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我今天做东西的时候也出现了这个问题。