Vue x模块命名空间



我遇到了一个问题,这个问题已经用名称空间解决了,但没有任何帮助。这是我的模块:

const Algo1Module = {
namespaced: true,
state: {
questions: {
question1: "test",
question2: "",
question3: "",
question4: "",
question5: "",
question6: ""
}
},
getters: {
getMyQuestions(state) {
return state.questions;
}
}
};
export default Algo1Module; // export the module

这是我商店里的index.js:

import Vuex from "vuex";
import createLogger from "vuex/dist/logger";
import algo1 from "@/store/modules/algo1.store";
Vue.use(Vuex);
const debug = process.env.NODE_ENV !== "production";
export default new Vuex.Store({
modules: {
algo1
},
strict: debug,
plugins: debug ? [createLogger()] : []
});

我试着从我的组件访问我的getter,像这样:

<script>
import { mapGetters } from "vuex";
export default {
name: "Algo",
computed: {
...mapGetters("Algo1Module", ["getMyQuestions"])
}
};
</script> 

但我有一个错误消息在控制台:[vuex]模块命名空间没有在mapGetters(): Algo1Module/

我不明白,或者我可能犯了一个错误。谢谢你给我的答案。

它将采用您在导入模块时设置的名称,尝试algo1

  1. 您的模块名称已注册在algo1名下
  2. 如果你想把它命名为Algo1Module,然后像这样在store中注册它:
modules: {
Algo1Module: algo1,
}

最新更新