看上面代码,el-tree中回显问题,暗藏的弹窗中曾经有全副的权限,当初在点击编辑权限,弹窗展现,默认勾选出曾经选中的权限

       let selectId = res.data.data.checkList; 权限id以后领有 [1,2,3]        this.$nextTick(() => {          selectId.forEach((item) => {            const node = this.$refs["menuListTree"].getNode(item);  依据id获取对应node节点            if (node?.isLeaf) {   isLeaf 这个属性意思是如果是叶子节点就是true,而后能够依据这个设置回显,那么他父节点会主动半选或者全选依据叶子节点              this.$refs["menuListTree"].setChecked(node, true);            }          });        });

这个代码我感觉逻辑是没有问题的,返回全副权限id,而后依据getNode(id)获取对应的node节点,而后node节点上有一个属性isLeaf, true的话这个节点就是叶子节点,那么就设置这个节点setChecked
选中,而后父节点会依据叶子节点的状况主动半选或者全选,

然而成果就不尽人意,

我在思考是不是这时候dom还没渲染实现呢,然而我加了nextTick呀,所以我后面有加了一个定时器,而后奇观就呈现了

  let selectId = res.data.data.checkList; //权限id以后领有 [1,2,3]     setTimeout(() => {          this.$nextTick(() => {          selectId.forEach((item) => {            const node = this.$refs["menuListTree"].getNode(item); //依据id获取对应node节点            if (node?.isLeaf) { //isLeaf 这个属性意思是如果是叶子节点就是true,而后能够依据这个设置回显,那么他父节点会默认半选或者全选依据叶子节点              this.$refs["menuListTree"].setChecked(node, true);            }          });        });     }, 100);

看到能获取到node节点,并且能选中了

所以想问下大家,这里到底怎么写好,这个起因是什么?