2017-06-17 5 views
1

ich einen Laden mit zwei Modulen definieren, zugreifen und ich versuche, ein Modul Aktion zugreifen zu können, habe ich versucht,Wie Vuex Modul die aus einer Komponente

this.$store.dispatch('load'); 

Aber ich habe zu tun:

[vuex] unbekannt Aktionstyp: load

ich habe versucht, einen anderen Optionen, was ich in google gefunden, aber nichts funktionierte, was ist der richtige Weg Modul Aktionen zugreifen?

Dies ist mein Code:

Vuex Definition:

let session = require('./store/session.js'); 
let options = require('./store/options.js'); 
const store = new Vuex.Store({ 
    modules: { 
     session: session, 
     options: options, 
    }, 
}); 

options.js

export default { 
    state: { 
     data: null, 
    }, 
    mutations: { 
     setOptions (state, payload) { 
      console.log(payload); 
     } 
    }, 
    actions: { 
     load({ commit }) { 
      $.getJSON('options') 
      .then(function (data) { 
       commit('setOptions', data); 
      }); 
     } 
    }, 
    getters: { 

    } 

} 

und meine app-Komponente:

export default { 
    beforeCreate() { 
     this.$store.dispatch('load'); 
    } 
} 

mein vue build:

new Vue({ 
    el: "#app", 
    router, 
    store, 
    render: h => h(App) 
}); 
+0

Was ist, wenn Sie 'console.log geschieht (dieses $. Speichern) 'in Ihrem' beforeCreate() {} 'hook? Es sollte ein "_actions" -Objekt geben, das alle verfügbaren Aktionen anzeigt. – visevo

+0

@visevo Es gab keine Eigenschaften in dieser Eigenschaft, aber es funktioniert, wenn ich in Optionen importierte –

Antwort

0

Solver ich das Problem Statt tun

let options = require('./store/options.js'); 

Ich habe:

import options from './store/options.js' 

Jetzt funktioniert es

+0

Ausgezeichnet, ich hätte das erwischen sollen. – visevo

Verwandte Themen