Maison > Questions et réponses > le corps du texte
P粉3767388752023-09-03 19:19:10
Les magasins Vuex sont conçus pour se soucier uniquement de l'état. Il n'a pas d'accès direct à vos composants ou this.$refs
. Ce que vous pouvez faire est de définir un état dans le stockage en fonction du résultat que vous obtenez et de permettre à votre composant d'accéder à cet état, et/ou de renvoyer une promesse de votre action pour transmettre le résultat directement à votre composant
async sendLeadResponse({ commit }, dataLeadObject) { const jsonDataObject = JSON.stringify(dataLeadObject); // assign promise from fetch const response = await fetch('http://localhost:5000/api/lead/leadResponse', { method: 'POST', headers: { 'Content-type': 'application/json' }, body: jsonDataObject }) .then(resp => resp.json()) .then(data => { if (data.error) { commit('MESSAGE_RESPONSE', data.error); // promise to resolve to false return false; } else { commit('RESET_LEAD_RESPONSE'); // promise to resolve to true return true; } }); // return promise return response },
// change to async async createLeadObject() { const dataLeadObject = { date: new Date(), fullName: this.lead.name, email: this.lead.email, phone: this.lead.phone, comment: this.lead.comment }; const response = await this.$store.dispatch('sendLeadResponse', dataLeadObject); // if response is 'true', show modal if (response) { this.$refs['modalSuccess'].show(); } }