首页 |  我的博客 |  查看该博主内容分类 | 

Vue的数据更新,页面不更新的解决办法

可能原因

更新的数据跟源数据不是同一个,即不是同一个引用

解决办法

最稳妥的办法,可通过拿到源数据取索引的方式进行数据的更新,如:
有一个源数据叫:originData

那么如果在更新时,通过this.originData[index].time = newValue的方式进行更新,而不是item.time = newValue

这样,更新的是源数据,大概率可解决问题。

其他可能的原因及解决办法

  1. 页面组件重复
    解决办法: 给组件加上key='xxx' xxx确保不要重复

  2. 部分对象不支持更改,如:scope.row
    解决办法: 新建对象let newObj = {...scope.row},甚至深拷贝let newObj = JSON.parse(JSON.stringify(scope.row))

  3. 数据不是双向绑定(重点)
    解决办法:响应式更新this.$set(对象, '对象属性', 新值)
    特别是如果你向数据列表的对象中添加了自定义属性,那务必使用该方法进行对象的属性设置,这样在本质上,添加的该新属性就声明了是双向绑定的属性。

  4. 数据层级过深
    解决办法:强制更新this.$forceUpdate()

posted @ 2023-08-17 19:33  Z哎呀  阅读(912)  评论(0)    收藏  举报