В модуле vuex, как глобально определить const на основе корневого состояния - PullRequest
0 голосов
/ 29 января 2019

В моих модулях vuex для каждого действия мне нужно получить такое же значение из корневого состояния.Поэтому я делаю следующее:

export const actions = {

    action1({ commit, rootState }, payload) {
        const companyId = rootState.userProfile.companyId;
        ....
    },
    action2({ rootState }, payload) {
        const companyId = rootState.userProfile.companyId;
        ....
    },
    ....

}

Есть ли способ объявить это const только один раз в модуле, вместо того, чтобы повторять

const companyId = rootState.userProfile.companyId;

в каждом действии

1 Ответ

0 голосов
/ 29 января 2019

Вы можете импортировать свой магазин в файл модуля и создать геттер, чтобы получить значение companyId.

Если не использовать геттер, это приведет к тому, что companyId будет установлен только один раз и не получит реальное значение во время выполнения действия:

import store from './index.js'

const companyId = () => store.state.userProfile.companyId

export const actions = {

    action1({ commit }, payload) {
        commit('doSomething', companyId())
        ...
    },
    action2({ }, payload) {
        ...
    },
    ...

}

Вы также можете создать геттер в своем модуле.чтобы получить companyId:

export const actions = {

  action1({ getters }, payload) {
    console.log(getters.companyId)
  }
}

export const getters = {
  companyId (state, getters, rootState) {
    return rootState.userProfile.companyId
  }
}
...