0
votes

VUEX ne peut pas mettre à jour le composant après la mutation

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: {

  }
})


0 commentaires

3 Réponses :


0
votes

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: {

  }
})


0 commentaires

0
votes

C'est VUE Réactivité CAVEAT . Vous devez mettre à jour stat.posts objet pour faire réactif VUEX. S'il vous plaît essayez: xxx


1 commentaires

Ne fonctionne pas, essayé, mais le tableau seulement est changé après que je me suis rafraîchi



0
votes

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;
  },
},


0 commentaires