Reputation: 7601
I have a Vuex array (this.buildings
). I can't mutate it directly before turning it into a payload for an api, so I tried to clone it with slice()
:
const buildingsPayload = this.buildings.slice()
buildingsPayload.forEach((building, index) => {
building.index = index
})
However I'm still getting the Do not mutate vuex store state outside mutation handlers.
error.
What's the correct way of doing this?
Upvotes: 5
Views: 2483
Reputation: 30082
Try something like this:
const buildingsPayload = this.buildings.map((b, idx) => Object.assign({ index: idx }, b));
It will also copy the objects, so you're not modifying the state of those.
Upvotes: 9