Maison > Questions et réponses > le corps du texte
this.$store.commit( 'deleteCheckboxItems', response.data.items.forEach(element => { element.id; }) );
À partir du api
reçu, je dois obtenir l'identifiant et le transmettre à vuex. La fonction fonctionne mais écrit un élément non défini sur la console lorsqu'elle est appelée.
vuex:
deleteCheckboxItems(state, payload) { if(state.filteredBrands) { state.filteredBrands = state.filteredBrands.filter((item) => { console.log(payload); item.id == payload; }); }
Dans vuex, j'ai besoin id
de comparer et de supprimer s'il y a les mêmes.
Que dois-je changer ?
P粉7398862902024-04-04 20:28:30
Si vous ne voulez pas changer deleteCheckboxItems
的实现,请使用数组将 this.$store.commit
emballez-le avec pour chaque comme ceci :
response.data.items.forEach(element => { this.$store.commit('deleteCheckboxItems', element) });
En plus, ce qui est le plus important, c'est votre filteredBrands.filter
不会过滤,因为您没有返回值。你必须 return item.id === Payload
.
P粉9744624392024-04-04 10:32:57
Utilisation map
函数代替forEach
:
this.$store.commit( 'deleteCheckboxItems', response.data.items.map(({id}) => id) );
Votre fonction filter
a également besoin de quelques changements. Il devrait renvoyer une valeur booléenne, mais vous avez oublié de renvoyer cette valeur.
deleteCheckboxItems(state, payload) { console.log(payload); if (state.filteredBrands) { state.filteredBrands = state.filteredBrands.filter((item) => { return item.id == payload; }); } }
La charge utile peut être un tableau d'identifiants, vous devez utiliser une fonction comme includes
pour vérifier votre cas.