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
來比較,如果有相同則刪除。
我該改變什麼?
P粉7398862902024-04-04 20:28:30
如果您不想更改 deleteCheckboxItems
的實現,請使用數組將 this.$store.commit
與 for every 一起包裝,如下所示:
response.data.items.forEach(element => { this.$store.commit('deleteCheckboxItems', element) });
此外,更重要的是您的 filteredBrands.filter
不會過濾,因為您沒有傳回值。你必須 return item.id === Payload
.
P粉9744624392024-04-04 10:32:57
使用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
來檢查您的情況。