在我的Vuex突变中,我想替换状态下的数组元素,如下所示:
UPDATE_MAILING(state, mailing) {
let index = _.findIndex(state.mailings, {id: mailing.id});
state.mailings[index] = mailing
}
但这不会更新绑定到此数组的模板。我该如何反应性地更新数组元素?
答案 0 :(得分:10)
您应该使用Vue.$set
(或在Vue实例中使用this.$set
):
UPDATE_MAILING(state, mailing) {
let index = state.mailings.findIndex(item => item.id === mailing.id)
Vue.$set(state.mailings, index, mailing)
}
答案 1 :(得分:3)
您可以使用Array.prototype.splice
来替换项目:
mutations: {
UPDATE_MAILING(state, mailing) {
const index = state.mailings.findIndex(x => x.id === mailing.id);
state.mailings.splice(index, 1, mailing);
}
}
答案 2 :(得分:0)
我想告诉你,如果要运算符Array type,最好使用mthod like splice slice pop push shift unshift,只有您自己使用,模板才能绑定到您的数组。不要将array [index]用作运算符;希望能为您提供真诚的帮助