如何使用Vuex更新阵列内的对象?我试过这个,但它不起作用:
const state = {
categories: []
};
// mutations:
[mutationType.UPDATE_CATEGORY] (state, id, category) {
const record = state.categories.find(element => element.id === id);
state.categories[record] = category;
}
// actions:
updateCategory({commit}, id, category) {
categoriesApi.updateCategory(id, category).then((response) => {
commit(mutationType.UPDATE_CATEGORY, id, response);
router.push({name: 'categories'});
})
}
答案 0 :(得分:13)
[mutationType.UPDATE_CATEGORY] (state, id, category) {
state.categories = [
...state.categories.filter(element => element.id !== id),
category
]
}
这可以通过替换'类别来实现。数组与原始数组没有匹配元素,然后将更新的元素连接到数组的末尾。
这种方法的一个警告是它破坏了数组的顺序,尽管在许多情况下不会成为问题。请记住一些事情。