我不能使用mapActions指向模块的动作之一。根据文档,默认情况下,模块操作未在Vuex中命名空间,因此模块的操作应与主存储操作一样可用。这是我的设置:

商店

import * as ModuleA from './ModuleA';
Vue.use(Vuex);

export default new Vuex.Store({
    state: { ... },
    getters: { ... },
    mutations: {  ... },
    actions: {  ... },
    modules: {
      A: ModuleA,
    }
});


模块A

let ModA = {
    state: { ... },
    getters: { ... },
    mutations: {  ... },
    actions: {
        FuncA: function({ commit }, id) {
            //do something
        },
    },
});

export default ModA;


零件

<template>
    ...
</template>
<script>
    import { mapGetters, mapActions } from "vuex";
    export default {
        data() {
        },
        methods: {
            ...mapActions(['FuncA']),
        }
    }
};
</script>


运行它,Vuex给我以下消息:


  
    
      未知操作类型:FuncA
    
  


我想念什么?必须与JS不是我的专长有关。 :)

最佳答案

很高兴这解决了您的问题:

所以代替:

import * as ModuleA from './ModuleA';


使用方法:

import ModuleA from './ModuleA'


可以使用任何别名直接导入默认导出。

10-06 04:48