this.$store.commit(
'deleteCheckboxItems',
response.data.items.forEach(element => {
element.id;
})
);
从收到的api我需要获取id并将其传递给vuex。该函数可以工作,但调用时会在控制台中写入 undefined。
vuex:
deleteCheckboxItems(state, payload) {
if(state.filteredBrands) {
state.filteredBrands = state.filteredBrands.filter((item) => {
console.log(payload);
item.id == payload;
});
}
在vuex中我需要id来比较,如果有相同则删除。
我应该改变什么?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
如果您不想更改
deleteCheckboxItems的实现,请使用数组将this.$store.commit与 for every 一起包装,如下所示:response.data.items.forEach(element => { this.$store.commit('deleteCheckboxItems', element) });此外,更重要的是您的
filteredBrands.filter不会过滤,因为您没有返回值。你必须return item.id === Payload.使用
map函数代替forEach:this.$store.commit( 'deleteCheckboxItems', response.data.items.map(({id}) => id) );您的
filter函数也需要一些更改。它应该返回一个布尔值,但您忘记返回该值。deleteCheckboxItems(state, payload) { console.log(payload); if (state.filteredBrands) { state.filteredBrands = state.filteredBrands.filter((item) => { return item.id == payload; }); } }有效负载可能是一个 id 数组,您应该使用一些函数,例如
includes来检查您的情况。