这个问题遇到很多次了 原因是 这里 toggleRowSelection(row, boolean) 这个方法,row是重绘数据
-
让我们来看看
this.$nextTick()
这个方法的 官方文档 -
在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。
解决方案
在要改变的数据外层套上这个方法
- 小栗子
// 回调 nextTick 数据改变后重绘页面
this.$nextTick(() => {
for ( var key in obj) {
this.$refs.multipleTable.forEach(all => {
all.toggleRowSelection(... obj[key], this.flag);
})
}
})
原因
vue中的数据是异步更新的到dom的,也就是说我们在改变之后数据后,还没有立即更新,this.$nextTick
这个方法 这个立即更新的 回调函数
也算 element-ui 的坑吧 因为这部分方法是他实现的