使用$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)
        })


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM