javascript - 使用 React Router 将 Firebase Auth 用户发送到组件

标签 javascript reactjs firebase firebase-authentication react-router

我使用 React Router 和 Firebase 构建了我的项目。 我的路由器看起来像:

...

<Router>
    <div className="App">
      <Header user={{ ...currentUser }} />
         <Route
            exact
            path="/profile"
            component={currentUser => (
               <Profile
                 {...currentUser}
                 user={currentUser}
                />
            )}
         />
...

如果我将 currentUser 作为 prop 发送(就像在 Header 中一样),它就会起作用,并且我可以获得所有属性。但是,如果我通过Route发送它,我只会得到未定义。我认为发生这种情况是因为组件在 firebase 发送对我的用户请求的答案之前呈现。但我不知道如何解决这个问题,也不知道如何在本地保存我的 currentUser (我尝试将其保存在我的 Session Storage 中,但这不是一个好的实现,我想)。

感谢您的每一次帮助!

最佳答案

您可以使用localStorage在用户登录时轻松获取数据:

用户登录后:

localStorage.setItem("username", currentUser);

下一页:

let name = localStorage.getItem("username");
console.log(name);

https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

关于javascript - 使用 React Router 将 Firebase Auth 用户发送到组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59177903/

相关文章:

javascript - Firebase CORS、白名单 IP 范围

javascript - JQuery 幻灯片故障

javascript - Rails 中的 ruby​​ vs js 字符串连接

javascript - 如何在 react-phone-number-input 中使用 material-ui TextField

javascript - 在 React 和 TypeScript 中使用正确的引用模式时,Refs 是空对象 {}

javascript - 如何在 Firebase 托管中处理动态 URL 路由

javascript - 将另一个数据添加到 firebase 数据库

Javascript 类型 'false' 无法分配给类型 'string'

javascript - 打印文档中的第一个链接

html - 哪种文档结构更好?