我使用ReactRedux并创建了一个函数来登录,但我需要在成功登录后获得回调返回,并将用户重定向到一个页面。
我尝试将函数作为参数传递,但不起作用。
如何在发货行动后获得退货?
第一个
提交
handleLogin(e) {
this.setState({ showLoader: true });
e.preventDefault();
const request = new Object();
if (this.validator.allValid()) {
request.email = this.state.email;
request.password = this.state.password;
this.props.login(request, () => {
//get callbach here
this.props.history.push('/my-space/my_views');
})
this.setState({ showLoader: false });
} else {
this.setState({ showLoader: false });
this.validator.showMessages();
this.forceUpdate();
}
}
const mapStateToProps = state => {
return {
authState: state
};
};
const mapDispatchToProps = dispatch => {
return {
login: request => dispatch(login(request))
};
};
export default connect(mapStateToProps, mapDispatchToProps)(LoginForm);
4条答案
按热度按时间a9wyjsp71#
您的连接中缺少CB(...)
这里是修复
希望对你有帮助:)
2q5ifsrm2#
如果您使用的是
redux-thunk
,则可以从async action
返回Promise
。但我更喜欢使用
useEffect
或componentDidUpdate
来实现此目的:yvt65v4c3#
如果您需要具有回调功能的操作,我建议使用Redux Cool包。
安装
用法
当我们试图生成一个操作对象时,我们可以将回调函数作为最后一个参数传递。
actionsCreator
将检查,如果最后一个参数是函数,则将其视为回调函数。有关详细信息,请参阅Actions Creator
abithluo4#
react-redux/redux分派返回一个承诺。如果你想返回一个值或者在分派后确定请求是成功还是错误,你可以这样做
操作示例
用法
这篇文章是旧的,但希望它会有所帮助
包.json