Vue x 模块命名空间
Vue x module Namespace
我遇到了一个我已经遇到过的问题,该问题已通过命名空间解决,但无济于事。
这是我的模块:
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()] : []
});
我尝试像这样从我的组件访问我的 getters :
<script>
import { mapGetters } from "vuex";
export default {
name: "Algo",
computed: {
...mapGetters("Algo1Module", ["getMyQuestions"])
}
};
</script>
但我在控制台中收到一条错误消息:[vuex] module namespace not found in mapGetters(): Algo1Module/
我没看懂,或者我理解有误。
谢谢你能给我的答案。
会取你导入模块时设置的名称,试试algo1
- 您的模块名称已在
algo1
名称下注册。
- 如果你想叫它
Algo1Module
然后像这样在商店注册它:
modules: {
Algo1Module: algo1,
}
我遇到了一个我已经遇到过的问题,该问题已通过命名空间解决,但无济于事。 这是我的模块:
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()] : []
});
我尝试像这样从我的组件访问我的 getters :
<script>
import { mapGetters } from "vuex";
export default {
name: "Algo",
computed: {
...mapGetters("Algo1Module", ["getMyQuestions"])
}
};
</script>
但我在控制台中收到一条错误消息:[vuex] module namespace not found in mapGetters(): Algo1Module/
我没看懂,或者我理解有误。 谢谢你能给我的答案。
会取你导入模块时设置的名称,试试algo1
- 您的模块名称已在
algo1
名称下注册。 - 如果你想叫它
Algo1Module
然后像这样在商店注册它:
modules: {
Algo1Module: algo1,
}