我有Vue 2.5.16和Vuex 3.0.1,它们都是使用vue-cli 3.0.0-rc.3全新安装的
我有一些命名空间的Vuex模块,如下所示:
// src/store/brand.js
export default {
getters: {
value1 (state) {
return state.value1
}
value2 (state) {
return state.value2
}
},
namespaced: true,
state: {
value1: 1,
value2: 2
}
}
我的模块在中央脚本中注册:
// src/store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
import brand from './brand'
import shared from './shared'
Vue.use(Vuex)
export default new Vuex.Store({
modules: [
brand,
shared
]
})
除非Vuex模块getters are supposed to be namespaced using the module name令我严重误解,所以我应该可以使用$store.getters['brand/value1]
,但是由于某些原因,我只有$store.getters['0/value1']
。
这已由Vue devtool确认,因此出于某种原因,该模块是通过其索引号而不是其名称进行注册的。
我想念什么?
答案 0 :(得分:2)
请将模块定义从数组更改为对象。
发件人:
export default new Vuex.Store({
modules: [
brand,
shared
]
})
收件人:
export default new Vuex.Store({
modules: {
brand,
shared
}
})