reactjs - 使用 Typescript 反应 Redux-Thunk
问题描述
所以我想用 Redux Thunk 输入我的 Redux Actions
这是一个动作
export function logout() {
return async(dispatch) => {
try {
const value = localStorage.removeItem("token");
dispatch(cons.updateLoginStatus(false));
return true;
} catch (err) {
console.error(err);
}
}
}
这是连接文件
const mapStateToProps = (store: IAppState) => {
return {
isLoggedIn: store.employee.isLoggedIn
}
}
const mapDispatchToProps = {
logout
}
export default connect(mapStateToProps, mapDispatchToProps)(Auth);
当我打电话时,await this.props.logout();
我想访问返回的true
但打字稿只看到返回的函数。
那么如何键入函数以await
获取返回值?
或者有没有更好的方法来做到这一点?
解决方案
你正在尝试的似乎有点反模式。该功能旨在即开即弃,这样您就不会挂起 UI。登录功能应该分派给你的减速器,状态现在已经离开
loggedIn: false
至
loggedIn: true
如果您需要一些具有响应的魔法,也就是在登录失败时抛出异常,那么我会推荐类似的东西
this.props.login().catch(err => console.log(err)).then(() => doSomething));
但是,我强烈建议您只调度并收听 ComponentDidUpdate 生命周期挂钩来重定向或您可能需要做的任何事情。
推荐阅读
- php - 如果只有一篇文章,按钮宽度为 100%
- android - com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:应为字符串,但在第 6 行第 17 列路径 $.ErrMsgDtl 处为 BEGIN_OBJECT
- javascript - 获取总聊天和错过的聊天
- ansible-inventory - 为什么变量在 Ansible 库存配置中被覆盖
- ios - iOS 标头设计指南
- ios - 存储 1000 个 MapKit 注释的最佳方法 + 在 tableView 中显示注释
- javascript - flask-socketio 事件未到达前端
- java - 实现继承-无法使方法正常工作,尽管我的代码中的类似方法可以正常工作
- python - 使用 PIL 在 ftp 服务器上打开图像
- javascript - 根据使用 jquery 通过 datepicker 选择的日期范围过滤表