【问题标题】:Vue.set() on nested array properties嵌套数组属性上的 Vue.set()
【发布时间】:2018-08-17 11:34:19
【问题描述】:

我一直在尝试通过以旧方式更新数组来触发 Vue DOM 更新,但由于 Vue 检测对象/数组更改的注意事项,它显然不会这样做。我不知道如何使用 Vue.set 访问我的嵌套数组属性。通常我会像这样访问和分配我的属性(顺便说一下,这是 Vuex 中的一个状态):

state.timelines[0].events[0].item.info = payload.info

我不知道如何使用 .set 访问和分配该属性,我尝试了一些组合,但都失败了。谢谢。

【问题讨论】:

  • 在您尝试这样更新之前,您的timelines 状态如何?我的意思是,它是一个空数组吗?如果不是,事件是empty 数组吗?以此类推。
  • 我做对了!,我以为我在操作一个数组,但实际上我试图改变“item”对象,所以我使用了Vue.set(state.timelines[i].events[0].item, 'info', payload.info),它现在可以正常工作了。谢谢你的回答。
  • 是的,很好。这真的取决于你的情况,但既然你解决了,那就这样。顺便说一句,我们应该添加通用答案还是删除问题?

标签: arrays vue.js nested set


【解决方案1】:

解决方案:当试图改变一个对象属性时,即使它在嵌套数组中很深,只要使用:Vue.set(arrayA[indexA].arrayB[indexB].object('objectPropertyName', newValue))

如果处理数组,请使用: Vue.set(array, arrayIndex, newValue).

【讨论】:

  • 您是否遗漏了代码示例中的右括号之类的内容?
猜你喜欢
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
  • 2021-04-25
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2017-05-22
  • 2016-11-03
相关资源
最近更新 更多