更改数组中索引找到的对象的一部分时如何触发更新?
文档展示了如何更改数组的值:
Vue.set(example1.items, indexOfItem, newValue)
或者
example1.items.splice(indexOfItem, 1, newValue)
但是如何在不改变对象其余部分的情况下改变数组中对象的属性值呢?
以下内容用于更新属性,但 Vue 不会对更改做出反应,直到有其他东西触发更新。
example1.items[indexOfItem].some_object_property = false
原文由 shanemgrey 发布,翻译遵循 CC BY-SA 4.0 许可协议
只要你调用一次 set() 来设置数组中的对象(带有你要更新的属性),Vue 就会对对象属性的变化做出反应。这是一个示例,其中一个对象数组在我们的应用程序数据中初始化,另一个对象数组在挂载时手动设置(使用 Vue.set())。单击按钮会更新每个数组中一个对象的属性,Vue 会做出反应。请注意,在 mount() 中发生的 set() 调用实际上可能随时发生。
https://codepen.io/jordan-kalosal/pen/VrwjoR