Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vuex模块:Can';不要使用映射操作_Javascript_Vue.js_Vuex - Fatal编程技术网

Javascript Vuex模块:Can';不要使用映射操作

Javascript Vuex模块:Can';不要使用映射操作,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我不能使用mapActions指向模块的一个操作。根据文档,默认情况下,Vuex中的模块操作没有名称空间,因此我的模块操作应该与主存储操作一样可用。以下是我的设置: 百货商店 模块A 组成部分 ... 从“vuex”导入{MapGetter,mapActions}; 导出默认值{ 数据(){ }, 方法:{ …映射操作(['FuncA']), } } }; 运行它时,Vuex会给我以下消息: 未知操作类型:FuncA 我错过了什么?肯定与JS不是我的专长有关。:) 请尝试在您的mapActi

我不能使用
mapActions
指向模块的一个操作。根据文档,默认情况下,Vuex中的模块操作没有名称空间,因此我的模块操作应该与主存储操作一样可用。以下是我的设置:

百货商店 模块A 组成部分

...
从“vuex”导入{MapGetter,mapActions};
导出默认值{
数据(){
},
方法:{
…映射操作(['FuncA']),
}
}
};
运行它时,Vuex会给我以下消息:

未知操作类型:FuncA


我错过了什么?肯定与JS不是我的专长有关。:)

请尝试在您的mapActions
中使用模块名称。…mapActions(“A”,“FuncA”)
。您还可以使用对象更改组件中的操作名称
…mapActions(“A”,{function:“FuncA”})
我很高兴这解决了您的问题:

因此,不是:

import * as ModuleA from './ModuleA';
使用:

import ModuleA from './ModuleA'

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

当我看到您的代码时,我认为您必须更改一些代码才能正确导入基于ES6的模块

所以试试这个:

  • 你的商店
  • //如果使用index.js或store.js存储这些代码,
    //您必须导入“vue”和“vuex”
    从“Vue”导入Vue
    从“Vuex”导入Vuex
    从“./ModuleA”导入ModuleA;
    Vue.use(Vuex);
    导出默认的新Vuex.Store({
    国家:{…},
    获取者:{…},
    突变:{…},
    行动:{…},
    模块:{
    ModuleA,//在ES6中,如果不需要属性名来介绍您的模块
    }
    });
    
  • 你的模
  • //只需导出它
    导出默认值{
    国家:{…},
    获取者:{…},
    突变:{…},
    行动:{
    //我使用了arrow函数语法,但您可以使用您的语法
    FuncA({commit},id)=>{
    //做点什么
    },
    },
    });
    
    尝试而不是从“/ModuleA”导入*作为ModuleA,使用
    从“/ModuleA”导入模块a就是这样。非常感谢。如果你想发布,我会接受它作为答案。我为新加入的参与者添加了一个答案,但这只与命名空间模块相关。无名称空间的模块不需要这样做。
    
    <template>
        ...
    </template>
    <script>
        import { mapGetters, mapActions } from "vuex";
        export default {
            data() {
            },
            methods: {
                ...mapActions(['FuncA']),
            }
        }
    };
    </script>
    
    import * as ModuleA from './ModuleA';
    
    import ModuleA from './ModuleA'