Vuex 参数传递
Vuex parameter passing
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
进行比较,如果相同则删除。
我应该改变什么?
使用map
函数代替forEach
:
this.$store.commit(
'deleteCheckboxItems',
response.data.items.map(({id}) => id)
);
您的 filter
函数也需要一些更改。它应该 return 一个布尔值,但你忘记了 return 这个值。
deleteCheckboxItems(state, payload) {
console.log(payload);
if (state.filteredBrands) {
state.filteredBrands = state.filteredBrands.filter((item) => {
return item.id == payload;
});
}
}
此外,payload 可能是一个 id 数组,您应该使用 includes
等函数来检查您的条件。
如果您不想更改 deleteCheckboxItems
的实现以采用数组将 this.$store.commit
与 for each 包装起来,如下所示:
response.data.items.forEach(element => { this.$store.commit('deleteCheckboxItems', element) });
此外,更重要的是您的 filteredBrands.filter
没有过滤,因为您没有 return 值。你必须 return item.id === payload
.
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
进行比较,如果相同则删除。
我应该改变什么?
使用map
函数代替forEach
:
this.$store.commit(
'deleteCheckboxItems',
response.data.items.map(({id}) => id)
);
您的 filter
函数也需要一些更改。它应该 return 一个布尔值,但你忘记了 return 这个值。
deleteCheckboxItems(state, payload) {
console.log(payload);
if (state.filteredBrands) {
state.filteredBrands = state.filteredBrands.filter((item) => {
return item.id == payload;
});
}
}
此外,payload 可能是一个 id 数组,您应该使用 includes
等函数来检查您的条件。
如果您不想更改 deleteCheckboxItems
的实现以采用数组将 this.$store.commit
与 for each 包装起来,如下所示:
response.data.items.forEach(element => { this.$store.commit('deleteCheckboxItems', element) });
此外,更重要的是您的 filteredBrands.filter
没有过滤,因为您没有 return 值。你必须 return item.id === payload
.