场景
今天根据需求做功能的时候,直接赋值修改了数组中某一项的对象里的一个属性,视图没有重新渲染,解决办法如下。
this.$set('数组', '修改的项的索引', '修改项')
// 另一种写法
import Vue from 'vue'
Vue.set('数组', '修改的项的索引', '修改项')
总结
对于数组为什么视图没有更新呢?因为Vue 不能检测以下数组的变动:
1.当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue
2.当你修改数组的长度时,例如:vm.items.length = newLength
所以可使用vue的set方法来触发状态更新。