關於Element-UI中DIALOG嵌套TABLE時,報 toggleRowSelection‘ of undefined錯誤完美解決方案


1,toggleRowSelection調用方式為refs方式,直接操作DOM層

this.$refs.multipleTable.toggleRowSelection(item, innerGood.selected);

2,我將dialog直接封裝成組件,這是造成問題的直接原因

3,然后在這個組件中執行了mounted函數,但是dialog是懶加載模式,在showDialog默認為false的時候,在初始時dialog根本沒有掛載到body下面,因此這時更不存在table被掛載上去,進而導致undefined問題;

4,因為dialog被封裝成了一個組件,而這個組件,在一開始就被執行了,所以該組件會調用mounted函數

 

 5,因此我第一想法是增加v-if,來延遲載入該組件,但帶來的問題是,SelectGoods會被來回銷毀重建,導致不能保持dialog隱藏時的狀態

 

6,因為dialog內部邏輯新建后,后期只是從body上移除,但是並沒有被銷毀,等再次顯示時,dialog里面的內容不會變化,這就是我想要的,而現在問題就是mounted時,調用this.$refs.multipleTable.toggleRowSelection報未定義,那我就在想,繞開mounted即可,給SelectGoods增加一個初始化變量,初始時為false,第一次監聽到dialog顯示時,再調用mounted中的函數,並且在this.$nextTick中執行this.$refs.multipleTable.toggleRowSelection函數,這次的確解決了問題

 

7,最終效果,保持了dialog狀態,不會被頻繁銷毀重建,又解決了未定義問題 

 

 版權聲明:本文為wangsenling原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接: https://blog.csdn.net/wangsenling/article/details/108863612

 


免責聲明!

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



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