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比較,如果有相同則洗掉。我應該改變什么?
uj5u.com熱心網友回復:
使用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來檢查你的條件。
uj5u.com熱心網友回復:
如果你不想改變你的實作deleteCheckboxItems來獲取一個陣列,this.$store.commit用 for each 這樣的包裝:
response.data.items.forEach(element => { this.$store.commit('deleteCheckboxItems', element) });
此外,更重要的是您filteredBrands.filter沒有過濾,因為您沒有回傳值。你必須return item.id === payload。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/381421.html
下一篇:ESLintVue多字組件
