gpt4 book ai didi

javascript - 无法从数组Vuex中删除项目

转载 作者:行者123 更新时间:2023-12-04 08:23:36 25 4
gpt4 key购买 nike

尝试了我在这里找到的所有方法(包括 this.$delete )后,我无法从数组中删除一个项目。findIndexIndexOf返回-1,显然因此不起作用。filtersplice也不起作用。
我怀疑我做错了什么。
我将不胜感激
Vuex

  namespaced: true,
state: {
coefficients: [],
},
mutations: {
getDataState(state, coefficients) {
state.coefficients = coefficients;
},
itemDelete(state, item) {
const index = state.coefficients.findIndex((el) => el.id === item.id);
if (index > -1) state.coefficients.splice(index, 1);
// #2 state.coefficients.splice(index, 1);
// #3
/* const index = state.coefficients.indexOf(item);
console.log(index, 'index');
if (index > -1) {
state.coefficients.splice(index, 1);
} */
},
},
actions: {
getData({ commit }, userData) {
api.get('/coefficients/')
.then((res) => {
commit('getDataState', {
coefficients: res,
});
})
.catch((error) => {
console.log(error, 'error');
commit('error');
});
},
deleteData({ commit }, { id, item }) {
api.delete(`/coefficients/${id}`)
.then((res) => {
commit('itemDelete', {
item,
});
console.log(res, 'res');
})
.catch((error) => {
console.log(error, 'error');
});
},
},
};
成分
        <div v-for="(item, index) in this.rate.coefficients" :key="item.id">
<div>{{ item.model }}</div>
<div>{{ item.collection }}</div>
<div>{{ item.title }}</div>
<span v-on:click="deleteItem(item.id, item)">X</span>
</div>

/* ... */

methods: {
deleteItem(id, item) {
this.$store.dispatch('rate/deleteData', { id, item });
},
},
created() {
this.$store.dispatch('rate/getData');
},

最佳答案

您的 itemDelete突变需要一个带有 id 的对象属性,但您传递给它的是一个带有 item 的对象属性,因为您正在包装 item在传递它时在一个普通对象中。
更改 deleteData 中的提交传递项目而不先包装它:

commit('itemDelete', item);

关于javascript - 无法从数组Vuex中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65379881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com