在vuex模块中,如何基于rootstate全局定义const

时间:2019-01-29 10:38:16

标签: vue.js vuejs2 vuex vuex-modules

在我的vuex模块中,对于每个操作,我需要从根状态获取相同值。因此,我将执行以下操作:

export const actions = {

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

}

是否有一种方法可以在模块中仅一次声明该常量,而不是重复

const companyId = rootState.userProfile.companyId;

在每个动作中?

1 个答案:

答案 0 :(得分:1)

您可以将商店导入模块文件中,并创建一个getter来获取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 } }

{{1}}