如何克隆Vuex数组?

时间:2017-06-30 03:04:35

标签: javascript vue.js

我有一个Vuex数组(this.buildings)。在将其转换为api的有效负载之前,我无法直接对其进行变异,因此我尝试使用slice()克隆它:

const buildingsPayload = this.buildings.slice() 
  buildingsPayload.forEach((building, index) => {
  building.index = index
})

但是我仍然收到Do not mutate vuex store state outside mutation handlers.错误。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:7)

尝试这样的事情:

const buildingsPayload = this.buildings.map((b, idx) => Object.assign({ index: idx }, b));

它也会复制对象,因此你不会修改它们的状态。