vue中手动调用render函数进行data数据更新
今天做项目碰到了一个比较麻烦的问题for (let i = 0;i<that.list.length;i++){if(that.list[i].id === e.target.dataset.id){that.$forceUpdate();that.list[i].total = 0that.list[i].isCheck...
·
今天做项目碰到了一个比较麻烦的问题
for (let i = 0;i<that.list.length;i++){
if(that.list[i].id === e.target.dataset.id){
that.$forceUpdate();
that.list[i].total = 0
that.list[i].isChecked === 0 ? that.list[i].isChecked = 1 : that.list[i].isChecked = 0
let list_item = that.list[i].list
for(let j = 0;j<list_item.length;j++){
list_item[j].isChecked = that.list[i].isChecked
}
}
}
这段代码是成功的代码主要是在改变数据前先调用that.$forceUpdate();
vue中对于数据结构层次较深的数据更新有可能不会自动触发render函数。
如果上述没有调用that.$forceUpdate();直接打印出来的data数据是会变化的但是实际上视图上的数据其实是没有更新的
更多推荐
已为社区贡献28条内容
所有评论(0)