尽管rootState.user.user_data返回一个对象,但rootState.user.user_data.uid返回null

时间:2020-01-27 02:30:05

标签: javascript vue.js vuex

我有问题。想象一下这种突变:

SET_USER(state, payload) {
            console.log("SET USER COMMIT")
            Vue.set(state.user_data, 'uid', payload.uid || payload._id)
            state.user_data.display_name = payload.display_name
            state.user_data.email = payload.email
            state.user_data.registered_on = payload.registered_on
            state.user_data.confirmed = payload.confirmed
            state.user_data.interacted_tags = payload.interacted_tags

        },

现在,想象一下对rootState的访问:

 test({rootState}, uid) {
            console.log(uid)
            console.log("uid", rootState.user.user_data.uid)
        }

尽管user_data.uid不为null,并且具有使用getter(在操作中也返回null)看到的值,但console.log返回的是null值。怎么了?

这是控制台中user_data的图像:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以为这些属性编写自定义的getter,这样您将拥有一个更易于维护和模块化的功能来访问vuex状态及其模块。

例如

getters: {
    getUserUid: state => {
        // here you can do some logs for faster debug
        return state.user.user_data.uid
    }
}
相关问题