使用$refs给组件赋值时,赋不上去,后面又只有第一次赋值有效,再次赋值无效。报错TypeError: Cannot read properties of null (reading 'setCheckedKeys') at Proxy.eval

修改给树形组件赋值,一直获取不到$refs的树型组件的组件的ref

image

我是通过组件封装来给子组件的的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)
        })
posted @ 2021-11-05 21:37  嘿!那个姑娘  阅读(6272)  评论(0编辑  收藏  举报