最近在做一个模块要求表格每行可以点击,点击完后摊款弹出另外一个表格,里边要显示当前点击这一行的扩展信息,发现点击弹出的表格总是展示的第一次点击的那一行的数据,点击其他行的时候console出来的list数据是变化了的,但是就是渲染不到表格里边,百度了一下说是vue没有监听到数组变化,于是就试验了各种办法,看到有大牛说可以用splice()实现,但是由于我的数组是个很大的对象数组,试了试没有实现,不知道是不是我哪儿写错了,最终找到了一个简单的解决办法
参照:https://www.jianshu.com/p/a7550c0e164f
//刚刚执行方法的时候先把数组清空一下,this.List不用说了在data定义的数组
this.List = []
let arr = []
$.each(data,(index,item)=>{
arr.push(item)
})
/*这段很重要
this.List = arr数组虽然更新了但是表格不会立即重新渲染
要在数据变化之后立即使用this.$nextTick
*/
this.$nextTick(function () {
this.List = arr
})