使用$refs给组件赋值时,赋不上去,后面又只有第一次赋值有效,再次赋值无效。报错TypeError: Cannot read properties of null (reading 'setCheckedKeys') at Proxy.eval
修改给树形组件赋值,一直获取不到$refs的树型组件的组件的ref
我是通过组件封装来给子组件的的el-tree组件来赋值
<page-dialog
ref="pageDialog"
:dialogFormItems="dialogFormItems"
:otherInfo='otherInfo'
width='40%'
:title='title'
pageName="role"
>
<el-tree
ref="roleTree"
:data="menusList"
show-checkbox
node-key="id"
:props="{children: 'children', label: 'name'}"
@check="check"
/>
</page-dialog>
然后通过this.$refs.roleTree.setCheckedKeys(treeChildren, false)
进行赋值
一直赋不上去。
然后我就通过this.$nextTick( () => {}
来包裹赋值
第一次打开弹窗是可以赋值上去的,我关掉再次打开就又赋不上去了,一直百度找不到,我又想思考nextTick的原理,然后去看自己的代码,发现我在弹窗设置为true之前对el-tree进行了赋值,所以,只有第一次有效,再次打开无效。
this.$refs.pageDialog.formData = row
this.$refs.pageDialog.dialogFormVisible = true
this.$nextTick( () => {
this.$refs.roleTree.setCheckedKeys(treeChildren, false)
})