Passage des paramètres Vuex
P粉828463673
P粉828463673 2024-04-03 22:36:08
0
2
482

this.$store.commit(
  'deleteCheckboxItems',
   response.data.items.forEach(element => {
     element.id;
     })
   );

À partir du apireç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粉828463673
P粉828463673

répondre à tous(2)
P粉739886290

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粉974462439

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal