我正在尝试将数据从App传递到Home组件,但是我不知道在这种情况下怎么办。
在我的App.js中,我具有firebase身份验证,该身份验证可在登录时保存电子邮件。
我需要将其传递给Home组件,但我不知道在这种情况下如何。我知道如何通过执行类似<Home user={user}>
这样的事情来传递数据,但现在还不行。
我应该在哪里将传递数据放在这样的代码中?
<Route exact path="/" component={Home} />
我将代码附加在CodeSandbox中
https://codesandbox.io/s/heuristic-mestorf-8qbx9?fontsize=14&hidenavigation=1&theme=dark
有App.js Home.js和Login.js
我在App.js中所做的是呈现页面,并且仅在登录时才能看到页面。 Login.js使用firebase auth登录,最后使用Home组件登录,我想打印出用户的电子邮件。
有人可以给我提示或帮我吗?我将非常感激:))
答案 0 :(得分:0)
要将道具传递到React-Router路线中,必须使用略有不同的语法
<Route
exact
path='/'
render={(props) => <Home {...props} auth={authState} />}
/>
在这种情况下,authState
将是您的Firebase用户数据。可以是布尔值,也可以是您想作为道具传递的任何其他数据。
然后在您的Home组件中,您将收到道具并可以随意使用它:
function Home({auth}) {
return (
<div>
{auth ? <h1>Logged In</h1> : <h1>Logged Out</h1>}
</div>
);
}