在我的主页中,我有一个用于存储注册和登录按钮的组件。
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
})
}
}
但是,由于首次调用该组件时prop是undefined,因此无法使用。
答案 0 :(得分:0)
尝试将this.props.location.state.triggerSignInComponent更改为 this.props.location.triggerSignInComponent
componentWillMount = () => { if(this.props.location.triggerSignInComponent) { this.setState({ triggerSignInComponent: true }) } }