我有问题。想象一下这种突变:
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的图像:
答案 0 :(得分:0)
您可以为这些属性编写自定义的getter,这样您将拥有一个更易于维护和模块化的功能来访问vuex状态及其模块。
例如
getters: {
getUserUid: state => {
// here you can do some logs for faster debug
return state.user.user_data.uid
}
}