1 回答

TA贡献1836条经验 获得超3个赞
这是因为 firebase 用户可以由 firebase 本身更改,因此您需要使用 userObject 的克隆设置商店。因为它可能是一个嵌套对象,所以您可以像这样进行深度克隆:
export default context => {
firebase.auth().onAuthStateChanged(userObject => {
// eslint-disable-next-line no-console
let userOb = JSON.parse(JSON.stringify(userObject))
console.log({ userOb })
context.store.commit('auth/setUser', { userOb })
})
}
此外,您没有正确使用 Vue.set。要设置一个对象,它应该是这样的:
Vue.set(state.user, key, value)
但我认为你不需要 vue set,你应该能够分配它:
export const mutations = {
setUser(state, val) {
state.user = val
}
}
但如果这搞乱了反应性,我会将用户初始化为一个数组并将其设置为:
export const state = () => ({
user: []
})
export const mutations = {
setUser(state, val) {
// eslint-disable-next-line no-console
console.log(val)
Vue.set(state.user, 0, val)
}
}
添加回答
举报