【问题标题】:Setting a variable on vuex module from another module getters Nuxt.js从另一个模块获取器 Nuxt.js 在 vuex 模块上设置变量
【发布时间】:2019-03-07 06:38:07
【问题描述】:

应用程序是使用 Nuxt.js 构建的。我正在尝试在 vuex 模块上启动一个变量,该变量用于在每个操作上调用 axios。

store/program.js

let program_url = 'programs/';

export const actions = {
  async programList({commit}) {
    await this.$axios.$get(program_url).then((response) => {
      commit("ALL_PROGRAMS", response);
    });
  },

我面临的问题是这个变量依赖于另一个 vuex 模块中的状态变量。我在这里尝试构建的是 store/program.js 我想启动一个名为 program = <dynamic_id_from_another_vuex_module>/program

的变量

另一个商店文件是store/university.js

export const state = () => ({
  settings: [],
  id: null
});

export const getters = {
  getId(state) {
    return state.id;
  }
};

那么我该如何在我的 store/program.js 中执行以下操作?

let program = store.getters['university/getId'] + 'program';

【问题讨论】:

标签: javascript vue.js vuex nuxt.js


【解决方案1】:

您需要在 getter 中使用 rootState,如下所示...

getId(state, getters, rootState) {
    return rootState.university.id  // Here I assume university is the another  module
}

就是这样:)

【讨论】:

  • 但那是在我的吸气剂中访问另一个 vuex吸气剂。如果我想在我的吸气剂之外使用它怎么办。如果我想定义如下的 e 变量怎么办? let program = store.getters['university/getId']
  • 如果你想从你的 vuex 的另一个模块访问 getter,那么只需从你当前的 getter 中获取 getters.YourGettersName。并且不要忘记这样写getId(state, getters, rootState)
猜你喜欢
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
  • 2019-09-29
  • 2018-03-13
  • 2017-07-25
  • 2011-04-01
相关资源
最近更新 更多