首页 文章

如何从组件访问Vuex模块操作

提问于
浏览
3

我定义了一个带有两个模块的商店,我试图访问一个模块操作,我试图这样做

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

但我得到:

[vuex]未知动作类型:加载

我尝试了另一个选项,我在谷歌找到的东西,但没有任何效果,访问模块操作的正确方法是什么?

这是我的代码:

Vuex定义:

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

    }

}

和我的应用程序组件:

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

我的vue构建:

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

1 回答

  • 0

    我解决问题而不是做

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

    我做了:

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

    现在它有效

相关问题