在React中加载登录首页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在React中加载登录首页相关的知识,希望对你有一定的参考价值。
这是我的应用程序的结构。
const App = () => {
// localStorage.setItem('isLoggedIn', false);
// const isLoggedIn = localStorage.getItem('isLoggedIn');
const isLoggedIn = true;
if(isLoggedIn === false){
return <Content/>
}
return <Dashboard/>
};
如果用户登录,则显示Dashboard
,否则显示Content
。这是Content
的结构。
const Content = (props) => {
const [isNew, setIsNew] = useState(true);
return (
<div className="wrapper">
{isNew ? <SignUp setIsNew={setIsNew} /> : <SignIn setIsNew={setIsNew} />}
</div>
);
};
export default Content;
此条件显示SignIn
或SignUp
。这是SignIn
组件。
class SignIn extends React.Component {
state={
email: '',
password: '',
isLoggedIn: false
};
handleSubmit = async (event) =>{
event.preventDefault();
localStorage.setItem('email', this.state.email);
const access_token = await getAccessToken(this.state.email, this.state.password);
localStorage.setItem('access_token', access_token);
localStorage.setItem('isLoggedIn', this.state.isLoggedIn);
console.log(access_token);
};
render() {
return (
<div className="sign-up">
<h1>Sign In</h1>
<Form onSubmit={this.handleSubmit}>
<Form.Group controlId="email">
<Form.Label>Email address</Form.Label>
<Form.Control type="email" placeholder="Enter email" value={this.state.email}
onChange={event => this.setState({email: event.target.value})}/>
<Form.Text className="text-muted">
</Form.Text>
</Form.Group>
<Form.Group controlId="password">
<Form.Label>Password</Form.Label>
<Form.Control type="password" placeholder="Password" value={this.state.password}
onChange={event => this.setState({password: event.target.value})}/>
</Form.Group>
<Form.Group controlId="formBasicCheckbox">
<Form.Check type="checkbox" label="Remember me" value={this.state.isLoggedIn}
onChange={event => this.setState({isLoggedIn: event.target.value})}/>
</Form.Group>
<Button variant="primary" type="submit" >
Sign In
</Button>
<hr/>
<button onClick={() => this.props.setIsNew(true)}>
If you don't have an account, Sign Up
</button>
</Form>
</div>
)
}
}
我想在成功Dashboard
时渲染SignIn
组件。我该怎么办?
答案
您可以在Content
和SignIn
的道具中定义一个回调函数。当用户登录时,您可以调用该函数以通知Content
,然后返回Content
以其道具(由App
提供)来调用回调函数。
以上是关于在React中加载登录首页的主要内容,如果未能解决你的问题,请参考以下文章