在我的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;
在每个动作中?
答案 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}}