Javascript 变异数组

Javascript 变异数组,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,以下突变不起作用: const mutations = { [types.UPDATE_IMG_URLS] (state, newArray) { state.imageUrlArray.concat(newArray) }, (...) } 然而,这一点: const mutations = { [types.UPDATE_IMG_URLS] (state, newArray) { state.imageUrlArray = state.imageUrlArray

以下突变不起作用:

const mutations = {
  [types.UPDATE_IMG_URLS] (state, newArray) {
    state.imageUrlArray.concat(newArray)
  },
(...)
}
然而,这一点:

const mutations = {
  [types.UPDATE_IMG_URLS] (state, newArray) {
    state.imageUrlArray = state.imageUrlArray.concat(newArray)
  },
(...)
}

我认为数组和对象在Javascript中是通过引用传递的。Vuex是否干预了此行为?

concat方法不会更改现有数组,而是返回一个新数组。这就是为什么需要使用新返回的数组主动覆盖
state.imageUrlArray

如果出于某种原因,您希望进行适当的变异,您应该能够执行以下操作:
state.imageUrlArray(state.imageUrlArray,newArray)

有关更多详细信息,请参阅