el-tree 回显undefined问题?
HTML代码:
<el-tree ref="tree"
style="min-height: 300px"
show-checkbox
:indent="0"
:data="treeData"
:props="treeProps"
node-key="id"
:default-expand-all="true"
:default-checked-keys="checkedMenuIds"
:render-content="renderContent"
@node-expand="handleExpand"
@check="handleBucketClick"
>
</el-tree>
获取已勾选的id:
getRoleMenus() { getMenuAuthList({
roleId: this.form.roleId,
appId: this.form.appId,
}).then((res) => {
// 获取授权后id回显
this.$nextTick(() => {
setTimeout(() => {
let arr1 = [];
let arr2 = [];
res.menuReq.forEach((i) => {
if (i.btnIds) {
arr1.push(i.menuId);
i.btnIds.map((j) => {
arr2.push(j);
});
}
});
this.checkedMenuIds = [...arr1, ...arr2];
this.$refs.tree.setCheckedNodes(this.checkedMenuIds); //给树节点赋值
console.log('回显', this.$refs.tree.setCheckedNodes(this.checkedMenuIds));
}, 0);
});
});
上面方法是在点击选中下拉框值的时候调用:
// 选择角色handleRoleChange() {
if (this.form.roleId) {
getMenuList({
appId: this.form.appId,
}).then((res) => {
if (!res) return;
this.treeData = res;
this.$nextTick(() => {
this.getRoleMenus();
this.changeCss();
});
});
} else {
this.treeData = [];
}
this.checkedMenuIds = [];
},
但是打印this.$refs.tree.setCheckedNodes(this.checkedMenuIds));一直显示的是undefined,一开始我以为是this.$refs.tree问题,打印也可以获取到。
因为这个this.$refs.tree.setCheckedNodes(this.checkedMenuIds));一直是undefined,导致回显有问题,所以请假大佬们,该怎么解决?
想不通为啥
回答:
人家的setCheckedNodes就没有设置返回值,你打印当然一直是undefined了
你应该检查你的checkedMenuIds数据是个啥,能不能跟treeData匹配。另外setCheckedNodes的参数应该是tree节点的数据集合,setCheckedKeys的参数应该是tree节点的id集合,这两个要分清楚应该用哪个
以上是 el-tree 回显undefined问题? 的全部内容, 来源链接: utcz.com/p/933260.html