На моей домашней странице есть компонент, в котором хранятся кнопки регистрации и входа.
Homepage.js
state = {
triggerSignInComponent: false
}
render() {
return {
this.state.triggerButtons ?
<div>
<Link to='/register'>
<button>Register</button>
<Link/>
<button onClick={this.toggleSignInHandler}>Sign In</button>
</div> : null
}
}
- Если пользователь нажимает кнопку «Вход», компонент вызывает компонент «Вход».
- Если пользователь нажимает на кнопку «Регистрация», он будет перенаправлен на компонент «Регистрация».Однако, если они передумают, есть кнопка «Вход», которая перенаправляет пользователя на домашнюю страницу с переключенным компонентом «Вход».
Register.js
signInHandler = () => {
this.props.history.push({
pathname:'/',
state: {
triggerSignInComponent: true
}
});
}
<button onClick={this.onSubmitHandler}>Register</button>
<button onClick={this.signInHandler}>Sign In</button>
Я хочу, чтобы компонент входа отображался, как только пользователь переключает signInHandler.Как я могу изменить состояние моей домашней страницы, если пользователь перенаправлен на домашнюю страницу для входа?Я попробовал следующее в Homepage.js :
componentWillMount = () => {
if(this.props.location.state.triggerSignInComponent) {
this.setState({
triggerSignInComponent: true
})
}
}
Однако, это не работает, так как реквизит не определен при первом вызове компонента.