亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 React History.push() 重定向不會反映輸入

使用 React History.push() 重定向不會反映輸入

GCT1015 2023-07-14 16:40:51
我正在使用 Firebase 構建一個應用程序并做出反應。在該應用程序中,當用戶編輯其信息并按下提交按鈕時,它會通過history.push()將其重定向到用戶信息頁面。用戶信息和頁面重定向效果都很好,但是頁面重定向后,編輯過的用戶信息沒有體現出來,頁面顯示的是之前版本的用戶信息。這是我的代碼。我使用 AuthContext 將 Firebase 憑據傳遞給每個組件。這是 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 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

因為updateUser是一個異步函數,所以您應該在函數中使用async awaitor.then語法updateUser,以便它history.push在更新用戶數據后調用


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');

       }


查看完整回答
反對 回復 2023-07-14
  • 1 回答
  • 0 關注
  • 227 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號