ElementUI中的 table expand異步加載,需要點2次才渲染數據的問題解決


https://blog.csdn.net/m0_37894494/article/details/119963776?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.control&spm=1001.2101.3001.4242

https://blog.csdn.net/qq_52433953/article/details/117930706

https://www.cnblogs.com/listen9436/p/13262418.html

 

這些博客都是關於這個組件的問題,當使用el-table 展開模式的時候,如果你在展開函數中

@expand-change=“expandTable”

中綁定的函數expandTable,對row進行數據操作,會使得點擊展開的內容馬上在收縮上去。

原因是因為你在expand展開的過程中dom樹,剛把要展開的內容加載進來,我們成為block1+data1,這個data1是你預設的,或者是空。

然后在expandTable()函數中,你對block1+data1中data1進行更新,變成block1+data2,vue監測到這種變化,就要重新去渲染dom樹,

然后會把你剛點擊展開的內容馬上繼續收上去。vue就這尿性,重新渲染的東西先把他消失掉。就造成你點擊第一次馬上收上去,點擊第二次能看到數據

,這屌問題,找了我一下午,網上都是說設計什么延遲,然后預設數據之類的。都有一定效果,我都試了一遍。發現都不起作用,

水平不行也看不了源碼。然后就思考為什么這b玩意要自己收縮上去,是不是因為找不到哪個數據對應要刷新,因為在vue中我們可以看到如果是動態改變某個組件的數據,他就可以馬上刷新,不用隱藏,

想了半天,看見el-table中有個屬性叫做row-key。想着這東西就是用來唯一識別。

 

一下問題就解決了,沃日。。。


免責聲明!

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



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