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。想着这东西就是用来唯一识别。
一下问题就解决了,沃日。。。