我正在尝试验证登录信息。确保登录有效后,我想触发一个新路由。 我将state.loginReducer.login作为props传递。当我处理提交事件时,将触发一个操作,改变全局的登录状态。
在这种情况下,ComponentWillReceiveProps
不应该被触发吗?因为props已更改。有没有更好的实现这个功能的方法?
handleSubmit (evt) {
const {
dispatch,
login
} = this.props;
dispatch(actions.doLogin(value.login));
}
ComponentWillReceiveProps (nextprops) {
const {
login
} = this.nextProps;
if (login != null) {
history.pushState({}, '/account');
}
}
function mapStateToProps (state) {
return {
login: state.loginReducer.login
}
}
export default connect(mapStateToProps)(Login);
mapStateToProps
定义为类方法吗?请确保不要意外地将undefined
传递给 connect。 - Nathan Hagen