Vuex-更新数组内的整个对象

Cai*_*aki 3 javascript vue.js vuex vuejs2

在我的Vuex变异中,我想替换状态下的数组元素,如下所示:

UPDATE_MAILING(state, mailing) {
    let index = _.findIndex(state.mailings, {id: mailing.id});

    state.mailings[index] = mailing
}
Run Code Online (Sandbox Code Playgroud)

但这不会更新绑定到该数组的模板。我该如何反应性地更新数组元素?

小智 10

您应该使用Vue.$set(或this.$set在Vue实例内部):

UPDATE_MAILING(state, mailing) {
    let index = state.mailings.findIndex(item => item.id === mailing.id)
    Vue.$set(state.mailings, index, mailing)
}
Run Code Online (Sandbox Code Playgroud)

Docs:Vue.js→深度反应