如何在 Vuex 中导出模块

How to export module in Vuex

我想像下面这样导出 Vuex 模块:

export {
    state,
    mutations,
    actions,
    getters
}

但是当我试图将它包含在我的索引文件中时它抛出错误。类型不兼容的东西。我想我应该指定上面对象的类型,但我不知道它是什么类型。

import * as itemsModule from './app/store/items/module'

let store = new Vuex.Store({
    modules: {
        items: itemsModule
    }
});

抛出:

is not assignable to parameter of type 'StoreOptions<{}>'. Types of property 'modules' are incompatible.

此致

您导入和导出的方式不正确。 试试看:

module.js

export default {
    state,
    mutations,
    actions,
    getters
}

store.js

import itemsModule from './app/store/items/module' 

解释: 你导入模块的方式,你得到了这种对象:

{
  default: {
    actions: {/** ... */}
    getters: {/** ... */}
    mutations: {/** ... */}
    state: {/** ... */}
  }
}

这不是商店期望的模块结构。