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
来比较,如果有相同则删除。
我应该改变什么?
如果您不想更改
deleteCheckboxItems
的实现,请使用数组将this.$store.commit
与 for every 一起包装,如下所示:response.data.items.forEach(element => { this.$store.commit('deleteCheckboxItems', element) });
此外,更重要的是您的
filteredBrands.filter
不会过滤,因为您没有返回值。你必须return item.id === Payload
.使用
map
函数代替forEach
:您的
filter
函数也需要一些更改。它应该返回一个布尔值,但您忘记返回该值。有效负载可能是一个 id 数组,您应该使用一些函数,例如
includes
来检查您的情况。