【问题标题】:Access root state from module getters in vuex从 vuex 中的模块 getter 访问根状态
【发布时间】:2019-11-17 04:53:44
【问题描述】:

我有根状态,其中包含来自 nuxt/auth.. 的身份验证数据。

在 store/modules/messages/ 里面我也有 state 和 getter 等。

在 getter 内部,我需要从根状态获取身份验证数据,但我不知道如何..

我尝试将 rootState 从模块添加到 index.js:

import state from './state'
import rootState from '../../state'
import * as actions from './actions'
import * as mutations from './mutations'
import * as getters from './getters'

export default {
  namespaced: true,
  state,
  rootState,
  getters,
  mutations,
  actions
}

export const avatar = (rootState) => rootState.auth.user.avatar

但这仍然返回模块状态..

【问题讨论】:

    标签: vue.js vuex nuxt.js


    【解决方案1】:

    在一个vuex模块中,一个getter有4个参数,分别是local state、local getter、root state和root getter。

    // messages/getters.js
    
    export function avatar (state, getters, rootState, rootGetters) {
      return rootState.auth.user.avatar
    }
    

    【讨论】:

    • 是的,我发现了,所以我需要添加 state、getter、rootState 来获取 rootState 还是只能获取 rootState?
    • 它始终是第三个参数。 Afaik 只有在你可以解构第一个参数的动作中。当然,总是有arguments object,但我讨厌那个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2021-05-15
    • 2021-08-27
    • 2018-02-10
    • 2021-09-15
    • 2021-11-11
    相关资源
    最近更新 更多