【发布时间】:2018-08-17 23:28:29
【问题描述】:
我是 vue.js 和 vuex 的新手,我对 mapstate 对象有疑问,首先我的商店中只有一个模块:
-Store
-index.js
-mutations.js
-actions.js
-state.js
state.js:
export default {
userInfo: {
messages: [{ 1: 'test', 2: 'test' }],
notifications: [],
tasks: []
}
}
所以当我尝试访问 userInfo 对象时,一切正常:
computed: {
...mapState(["userInfo"]),
}
然后我决定创建模块:
-Store
-modules
-ldap.js
-commons.js
-index.js
所以userInfo 在commons.js 文件中,现在当我尝试获取对象时,我总是得到undefined:
commons.js
// state
const state = {
userInfo: {
messages: [{ 1: 'test', 2: 'test' }],
notifications: [],
tasks: []
}
}
export default {
actions,
mutations,
state
}
Component.vue
computed: {
...mapState(["userInfo"]), // <---- undefined
}
main.js:
import Vue from 'vue'
import Vuex from 'vuex'
import commons from './commons'
import ldap from './modules/ldap'
Vue.use(Vuex)
export default new Vuex.Store({
modules : {
commons,
ldap
}
})
你能告诉我如何访问 userInfo 对象吗?
谢谢。
【问题讨论】:
-
你是如何设置你的模块的?实际上我没有看到任何证据表明您正在使用 vuex-modules?
-
您是否为您的模块命名了......即在您的模块中设置
namespaced: true? -
不,我会尝试设置命名空间,谢谢
标签: vue.js vuejs2 vuex vuex-modules