命名间隔的Vuex模块获取器注册为数字而不是模块名称

时间:2018-08-07 10:14:25

标签: vue.js module namespaces vuex getter

我有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确认,因此出于某种原因,该模块是通过其索引号而不是其名称进行注册的。

我想念什么?

1 个答案:

答案 0 :(得分:2)

请将模块定义从数组更改为对象。

发件人:

export default new Vuex.Store({
  modules: [
    brand,
    shared
  ]
})

收件人:

  export default new Vuex.Store({
    modules: {
      brand,
      shared
    }
  })