2017-08-29 1 views
0

Je veux juste créer un module dynamique enregistré dans le vuex, mais il semble ne fonctionne pas. c'est mon fichier magasinvuex type de mutation inconnue dans le module enregistré

import Vuex from 'vuex' 
import descriptionModule from './module/descriptionModule'; 
const {state: stateModule, getters, mutations} = descriptionModule; 

const createStore =() => { 
    return new Vuex.Store({ 
    state: { 
     descriptions: [], 
    }, 
    mutations: { 
     addDescriptions(state, payload){ 
     state.descriptions.push(state.descriptions.length + 1); 
     createStore().registerModule(`descriptionModule${payload}`, { 
      state: stateModule, 
      getters, 
      mutations, 
      namespaced: true // making our module reusable 
     }); 
     } 
    } 
    }) 
}; 

export default createStore 

et ceci est mon module personnalisé que je vais enregistré

const state =() => { 
    return {description: ''} 
}; 
const getters = { 
    description: (state) => state.description 
}; 
const mutations = { 
    updateDescription(state, payloads){ 
    state.description = payloads; 
    } 
}; 
export default { 
    state,getters,mutations 
} 

et ceci est mes méthodes personnalisées qui appelleront la mutation de addDescriptions et engager updateDescription de registeredModule

beforeMount(){ 
    console.log("hahahaha"); 
    this.$store.commit('addDescriptions', this.id); 
}, 
... more code .... 
methods: { 
     onType(editor, content){ 
     console.log(this.$store.state.a); 
     console.log(this.$store.state); 
     console.log(this.$store); 
     this.$store.commit(`descriptionModule${this.id}/updateDescription`, content, {root: true}) 
     } 
    } 

chaque onType appelé, j'obtiens une erreur unknown mutation type: descriptionModuleeditor1/updateDescription dans le navigateur.

iam suit actuellement cette solution link, mais cela ne fonctionne pas pour moi :(

quelqu'un peut-il résoudre ce ,,, désolé pour mauvais anglais

Répondre

0

Invoke store.registerModule de $() par l'intermédiaire de composants/pages avantMount

beforeMount(){ 
     this.$store.registerModule(`descriptionModule${this.id}`, { 
     state: stateModule, 
     getters, 
     mutations, 
     namespaced: true // making our module reusable 
     }); 
    },