我使用 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/