0
votes

Réponse de la réponse des actions VUEX au composant

donc j'ai un composant qui a cette méthode: xxx

alors cela se produit dans actions.js: xxx

maintenant mon composant a des données appelées succès: false et je veux la définir sur true lorsque j'appelle la fonction de actions.js contactAuthor . Comment puis-je retourner true et le définir sur Data succès dans le composant?


0 commentaires

3 Réponses :


3
votes

Personnellement, je sens que l'envoi des données au composant n'est pas la manière idéale. Au lieu de cela, vous pouvez avoir une autre constante (comme ci-dessous) dans actions.js et avoir un getter pour la même chose. Accédez au getter dans votre composant comme une propriété calculée.

// component.vue
computed: {
    apiDataFetchSuccess() {
      return this.$store.getters.API_DATA.fetch.success
    },
    apiData() {
      return this.$store.getters.API_DATA.data
    }
}


1 commentaires

Les gens ont besoin de uplifier cette réponse. Si vous n'utilisez pas le magasin pour suivre l'état, pourquoi l'utilisez-vous en premier lieu? Laissez-moi élaborer: personne ne vous empêchera de passer une fonction de rappel à la charge utile de l'action. Si vous faites cela, vous pouvez en effet obtenir une réponse directe de l'action. Mais cela vaincre tout le concept d'utilisation d'un magasin en premier lieu et tout cadre réactif en principe.



0
votes

ok donc cela a fonctionné.

this.$store.dispatch('contactAuthor', message).then(data => {
  this.success = data;
});


2 commentaires

Qu'est-ce que vous avez reçu du rappel? Quelle est la valeur des données Je ne vois rien de résoudre!


@Satyampathak data est true car data est trueMessage à partir de API appelle



0
votes

Dans vos mutations de magasin, vous devez faire quelque chose comme ceci: xxx pré>

dans votre composant fait quelque chose comme ceci: P>

this.$store.dispatch('contactAuthor', message)
.then( (success)  => {
   //OK, do something
})
.catch( (error) => {
   // ERROR, do something
});


0 commentaires