1 回答

TA貢獻1836條經驗 獲得超3個贊
這是因為 firebase 用戶可以由 firebase 本身更改,因此您需要使用 userObject 的克隆設置商店。因為它可能是一個嵌套對象,所以您可以像這樣進行深度克?。?/p>
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)
}
}
添加回答
舉報