Vue组件中改变Vuex中一个数组的某一项,其他项也全都被修改

clipboard.png

list是从vuex中取出的一个数组,
row是新对象。

直接打印keyText,是未修改的值。
上面的console.log(list)打印出来的是已经修改过的数组。
并且list[0].info.formRow也被修改成了row对象。

我在下面又打印了list[0].info.formRow[0].keyText,是已经修改过的,但是Vue.set方法明明修改的是list[1]中的值。

clipboard.png

另一个组件中改变的list[1].info对象中的一个字符串属性,却不会影响到list[0].info中的这个属性。

现在只能先把widgetListInuse克隆,然后修改克隆后的list,再把它用store.commit提交到vuex中。
这样虽然可以实现需求了,但是这个原始的问题没有解决。

阅读 14.1k
4 个回答

数组里边对象保存的是索引,拿出来的是一个索引,一个改都改

看来你没理解Vuex的设计,对state的修改需要全部走mutation,你可以改一下试试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题