GCT1015
2023-07-14 16:40:51
我正在使用 Firebase 構(gòu)建一個(gè)應(yīng)用程序并做出反應(yīng)。在該應(yīng)用程序中,當(dāng)用戶編輯其信息并按下提交按鈕時(shí),它會通過history.push()將其重定向到用戶信息頁面。用戶信息和頁面重定向效果都很好,但是頁面重定向后,編輯過的用戶信息沒有體現(xiàn)出來,頁面顯示的是之前版本的用戶信息。這是我的代碼。我使用 AuthContext 將 Firebase 憑據(jù)傳遞給每個(gè)組件。這是 AuthContext 文件的一部分。 function updateUser(username, email, data) { const uid = data.uid db.collection('users').doc(uid).set({ email: email, username: username, }, {merge: true}) } useEffect(() => { const unsubscribe = auth.onAuthStateChanged(async(user) => { if (user) { const uid = user.uid console.log(uid) await db.collection('users').doc(uid).get() .then(snapshot => { const data = snapshot.data() setCurrentUser(data) setLoading(false) }) } }) return unsubscribe }, [])您知道如何反映我在編輯屏幕上輸入的值嗎?
1 回答

婷婷同學(xué)_
TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
因?yàn)閡pdateUser是一個(gè)異步函數(shù),所以您應(yīng)該在函數(shù)中使用async awaitor.then語法updateUser,以便它history.push在更新用戶數(shù)據(jù)后調(diào)用
function updateUser(username, email, data) {
const uid = data.uid
return db.collection('users').doc(uid).set({
email: email,
username: username,
}, {merge: true})
}
updateUser(usernameRef.current.value, emailRef.current.value, data)
.then(() => {
history.push('/dashboard');
}
添加回答
舉報(bào)
0/150
提交
取消