第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

注冊(cè)時(shí)存儲(chǔ)用戶名僅在頁(yè)面刷新后顯示(Firebase)

注冊(cè)時(shí)存儲(chǔ)用戶名僅在頁(yè)面刷新后顯示(Firebase)

智慧大石 2023-10-14 19:26:47
我是 React 和 Firebase 的新手,我一整天都在嘗試解決這個(gè)小的用戶注冊(cè)問題。希望有人能幫助我,我將不勝感激????我正在使用 React 和 Firebase 制作一個(gè)類似 twitter 的博客網(wǎng)站,目前正在使用 Firebase 的 auth.createUserWithEmailAndPassword() 方法使用用戶名注冊(cè)新用戶。這就是我正在做的:  import { auth } from '../firebase';  const onSubmit = async (data) => {    auth      .createUserWithEmailAndPassword(data.email, data.password)      .then((result) => {        result.user.updateProfile({          displayName: data.username,        });        setUserError(!userError);        window.localStorage.setItem('emailForSignIn', data.email);        setRedirect(true);      })      .catch((error) => {        setUserError(!userError);        setAlertMsg(error.message);      });  };用戶提交表單后,他們將被重定向到主頁(yè),然后我將頁(yè)面設(shè)置為他們當(dāng)前的用戶名。我通過設(shè)置用戶名的狀態(tài)來(lái)設(shè)置用戶名,然后將其作為道具傳遞到我的所有頁(yè)面。const Main = ({SignOut}) => {  const [userName, setUserName] = useState('')  useEffect(() => {    const getUserName = () => {      auth.onAuthStateChanged((user) => {        setUserName(user.displayName)        console.log('Current userName is: ', user.displayName);      });    }    getUserName()   }, [])      return (    <Router>      <Switch>          <Route exact path="/">            <Navbar userName={userName} SignOut={SignOut} />            <Tweets userName={userName} />          </Route>          <Route path="/profile">            <Navbar userName={userName} SignOut={SignOut} />            <Profile setUserName={setUserName} userName={userName} />          </Route>        </Switch>    </Router>  )}幾乎一切都很完美,但是他們的用戶名只有在注銷并重新登錄時(shí)才會(huì)顯示。任何幫助都會(huì)很棒!
查看完整描述

1 回答

?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

這是我遇到的一個(gè)超級(jí)菜鳥錯(cuò)誤,但我沒有使用 useEffect 來(lái)設(shè)置用戶名,而是將 setUserName 狀態(tài)傳遞給我的注冊(cè)組件,并完全取消了 useEffect。這解決了一切。


  const onSubmit = async (data) => {

    auth

      .createUserWithEmailAndPassword(data.email, data.password)

      .then((result) => {

        result.user.updateProfile({

          displayName: data.username,

        });

        // This is the state i was missing.

        setUserName(data.username);

        setUserError(!userError);

        window.localStorage.setItem('emailForSignIn', data.email);

        setRedirect(true);

      })


查看完整回答
反對(duì) 回復(fù) 2023-10-14
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)