首页 > 解决方案 > 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()] : []
});

我尝试从我的组件中访问我的吸气剂,如下所示:

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

但是我在控制台中有一条错误消息: [vuex] 模块命名空间在 mapGetters() 中找不到:Algo1Module/

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

标签: vue.jsvuexstore

解决方案


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


推荐阅读