如何克隆Vuex数组?

ale*_*lex 5 javascript vue.js

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

const buildingsPayload = this.buildings.slice() 
  buildingsPayload.forEach((building, index) => {
  building.index = index
})
Run Code Online (Sandbox Code Playgroud)

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

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

Eva*_*oli 8

尝试这样的事情:

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

它还会复制对象,因此您不会修改它们的状态.