【发布时间】:2020-11-05 11:00:28
【问题描述】:
我正在使用带有 typescript 的 nuxtjs 并使用 vuex-module-decorators。但是将@nuxtjs/auth 添加到我的项目时出现错误。
未捕获(承诺中)错误:ERR_STORE_NOT_PROVIDED:要使用 getModule(),无论是模块 应该在装饰器中使用 store 进行装饰,即 @Module({store: store}) 或 调用 getModule() 时需要传递 store,即 getModule(MyModule, this.$store)
调用 Action 时会出现此错误。
当 @nuxtjs/auth 来自模块时没问题。
store/index.ts
import { Store } from "vuex";
import { initializeStores } from "~/utils/store-accessor";
const initializer = (store: Store<any>) => initializeStores(store);
export const plugins = [initializer];
export * from "~/utils/store-accessor";
utils/store-accessor
/* eslint-disable import/no-mutable-exports */
import { Store } from "vuex";
import { getModule } from "vuex-module-decorators";
import { NuxtAxiosInstance } from "@nuxtjs/axios";
import Login from "~/store/Login";
import App from "~/store/App";
let $axios: NuxtAxiosInstance;
function initializeAxios(axiosInstance: NuxtAxiosInstance) {
$axios = axiosInstance;
}
let loginStore: Login, appStore: App;
function initializeStores(store: Store<any>): void {
loginStore = getModule(Login, store);
appStore = getModule(App, store);
}
export { initializeStores, initializeAxios, loginStore, appStore, $axios };
【问题讨论】: