Vuejs2 vuex模块上的延迟加载

Vuejs2 vuex模块上的延迟加载,vuejs2,Vuejs2,我正在尝试对我的vuex模块使用延迟加载,如本文所述: 这是我的旧商店\index.js: import Vue from 'vue'; import Vuex from 'vuex'; import app from './modules/app'; import search from './modules/search'; import identity from './modules/identity'; import profil from './modules/profil';

我正在尝试对我的vuex模块使用延迟加载,如本文所述:

这是我的旧商店\index.js:

import Vue from 'vue';
import Vuex from 'vuex';

import app from './modules/app';
import search from './modules/search';
import identity from './modules/identity';
import profil from './modules/profil';

Vue.use(Vuex);

export default new Vuex.Store({
  modules: {
    app,
    search,
    identity,
    profil,
  },
});
我试着这样做:

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

const store = new Vuex.Store();

import('./modules/app').then((appModule) => {
  store.registerModule('app', appModule);
});

import('./modules/search').then((searchModule) => {
  store.registerModule('search', searchModule);
});

import('./modules/identity').then((identityModule) => {
  store.registerModule('identity', identityModule);
});

import('./modules/profil').then((profilModule) => {
  store.registerModule('profil', profilModule);
});

export default store;
但是现在我有很多错误,比如“TypeError:_vm.consultList是未定义的”,consultList是一个mapState变量,我的mapActions上也有同样的错误
我做错了什么吗?

加载应用程序时,所有这些模块都将被注册,因为您最有可能将存储添加到初始vue实例中。如何通过路由器动态加载vuex模块:

{
            path: "/orders/active",
            name: "active-orders",
            component: ActiveOrders,
            props: true,
            beforeEnter: (to, from, next) => {
                importOrdersState().then(() => {
                    next();
                });
            }
        },
然后,在我的路由器文件中,我添加了:

const importOrdersState = () =>
    import("@/store/orders").then(({ orders }) => {
        if (!store.state.orders) store.registerModule("orders", orders);
        else return;
    });