如何在Vuex中导出模块

She*_*dPL 2 javascript vue.js vuex

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

export {
    state,
    mutations,
    actions,
    getters
}
Run Code Online (Sandbox Code Playgroud)

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

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

let store = new Vuex.Store({
    modules: {
        items: itemsModule
    }
});
Run Code Online (Sandbox Code Playgroud)

抛出:

不可分配给“StoreOptions<{}>”类型的参数。属性“模块”的类型不兼容。

问候

Lir*_*anC 5

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

模块.js

export default {
    state,
    mutations,
    actions,
    getters
}
Run Code Online (Sandbox Code Playgroud)

商店.js

import itemsModule from './app/store/items/module' 
Run Code Online (Sandbox Code Playgroud)

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

{
  default: {
    actions: {/** ... */}
    getters: {/** ... */}
    mutations: {/** ... */}
    state: {/** ... */}
  }
}
Run Code Online (Sandbox Code Playgroud)

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