J'essaie de mettre à jour un composant après avoir poussé quelque chose de nouveau dans mon tableau. Je crée un poste dans CreativeEPOST.vue et engagez-le dans mon fichier Store.js où il stocke l'objet que j'envoie dans l'état.
Le problème que j'ai obtenu est que j'ai trop rafraîchir la page pour obtenir les nouvelles données dans le tableau. P>
CreativeEpost.vue: P>
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { posts: [], }, mutations: { ADD_POST(state,postObj){ state.posts.push(postObj); alert(state.posts); }, INIT_POST(state,postObj){ postObj.forEach(element => { state.posts.push(element); }); }, }, actions: { } })
3 Réponses :
Vous pouvez essayer d'utiliser des Mapetters comme celui-ci.
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { posts: [], }, getters: { getPosts(state) { return state.posts } }, mutations: { ADD_POST(state,postObj){ state.posts.push(postObj); alert(state.posts); }, INIT_POST(state,postObj){ postObj.forEach(element => { state.posts.push(element); }); }, }, actions: { } })
C'est VUE Réactivité CAVEAT . Vous devez mettre à jour stat.posts code> objet pour faire réactif VUEX. S'il vous plaît essayez:
Ne fonctionne pas, essayé, mais le tableau seulement est changé après que je me suis rafraîchi
Vous utilisez de manière incorrecte de VUEX.
Si vous le configurez correctement, le magasin doit être disponible comme ceci. $ Store code> et la valeur calculée doit ressembler à p>
computed:{
items:function(){
return this.$store.state.posts;
},
},