【发布时间】:2021-06-10 12:54:11
【问题描述】:
我的目录结构如下图所示。
从LoginComponent 登录时,我想将登录数据传递给UserProfileComponent,如果未登录,则默认加载DefaultCompoent。
为此,我对组件进行了如下管理。
LandingComponent.js
export default function LandingComponent(props) {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const [userName, setUserName] = useState('')
useEffect(() => {
setIsLoggedIn(true)
});
return (
<main>
{
isLoggedIn ? <UserProfileComponent setUserName={setUserName} /> : <DefaultComponent userName={userName} />
}
</main>
)
}
DefaultComponent.js
export default function DefaultComponent(props) {
return (
<p>Hello User</p>
)
}
UserProfileComponent.js
export default function UserProfileComponent(props) {
return (
<p>Hello {userName}</p>
)
}
LoginComponent.js
export default function LoginComponent(props) {
const [email, setEmail] = useState("");
const [userPassword, setPassword] = useState("");
const loginUser = async event => {
event.preventDefault()
axios.post(`{api_endpoint}/login`, data)
.then((response) => {
const userDetails = response.data
})
})
return (
<form onSubmit={loginUser}>
<input
value={email}
type="email"
onChange={(e) => setEmail(e.target.value)}
/>
<input
value={userPassword}
onChange={(e) => setPassword(e.target.value)}
type="password"
id="password"
placeholder="Password"
required
/>
<div className="col-2">
<input type="submit" name="" value="Login" />
</div>
</form>
)
}
那么,如何使用钩子将 login_api 响应数据从 LoginComponent 传递给 UserProfileComponent?
【问题讨论】:
-
使用 Redux 或 Context API。
标签: javascript reactjs react-hooks next.js