首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储无法动态注册动态导入的模块

存储无法动态注册动态导入的模块
EN

Stack Overflow用户
提问于 2019-12-26 16:38:37
回答 2查看 212关注 0票数 1

我想实现一个功能,可以在组件创建/销毁时注册和注销一些模块,我的测试如下所示:

代码语言:javascript
复制
// ../store/DMRTest.ts
const DMRTest = {
    state: { name: 'DMR test ' },
    mutations: {
        getName(state) {
            state.name += state.name;
        }
    },
    actions: {},
    getters: { NN(state) { return state.name; } },
};

export default DMRTest;

// App.vue
  import DMRTest from '../store/DMRTest.ts';
  // ...
  async created() {
      // Not works!
      this.$store.registerModule('DMRTest', await import('../store/DMRTest.ts'));
      // Works
      this.$store.registerModule('DMRTest', DMRTest);
      console.log(this.$store);
      console.log(this.$store.state);
  }

当我静态导入模块时,它将被正确注册:

但是当我使用import函数时,商店像这样注册了模块:

如何动态导入模块?

EN

回答 2

Stack Overflow用户

发布于 2019-12-26 16:49:09

我应该将default附加到动态导入的问题结束之后

票数 0
EN

Stack Overflow用户

发布于 2022-02-05 05:09:32

就像用一个例子写的那样:

代码语言:javascript
复制
const store = new createStore(rootStoreModule);
const modules = ['moduleA', 'moduleB']
for(const module of modules) {
    import(`./components/${ module.toLowerCase() }/store.js`)
    .then( (obj) => { store.registerModule(module, obj.default); } )
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59485884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档