我有一个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.
错误。
这样做的正确方法是什么?
答案 0 :(得分:7)
尝试这样的事情:
const buildingsPayload = this.buildings.map((b, idx) => Object.assign({ index: idx }, b));
它也会复制对象,因此你不会修改它们的状态。