【发布时间】:2017-11-20 08:46:14
【问题描述】:
我定义了一个包含两个模块的商店,我正在尝试访问一个模块操作,我尝试这样做
this.$store.dispatch('load');
但我明白了:
[vuex] 未知动作类型:加载
我尝试了另一个选项,我在 google 中找到的东西,但没有任何效果,访问模块操作的正确方法是什么?
这是我的代码:
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)
});
【问题讨论】:
-
如果你在
console.log(this.$store)中加入beforeCreate() {}钩子会发生什么?应该有一个_actions对象来显示所有可用的操作。 -
@visevo 该属性中没有属性,但是当我导入选项时它可以工作