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'