首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React Redux-Thunk with Typescript

React Redux-Thunk with Typescript
EN

Stack Overflow用户
提问于 2018-11-14 14:36:07
回答 2查看 291关注 0票数 0

所以我试着用Redux Thunk输入我的Redux操作

下面是一个操作

代码语言:javascript
复制
export function logout() {
  return async(dispatch) => {
    try {
      const value = localStorage.removeItem("token");

      dispatch(cons.updateLoginStatus(false));

      return true;

    } catch (err) {
      console.error(err);
    }
  }
}

这是连接文件

代码语言:javascript
复制
const mapStateToProps = (store: IAppState) => {
  return {
    isLoggedIn: store.employee.isLoggedIn
  }
}

const mapDispatchToProps = {
  logout
}

export default connect(mapStateToProps, mapDispatchToProps)(Auth);

当我调用await this.props.logout();时,我想访问返回的true,但typescript只能看到返回的函数。

那么,如何将函数键入await以获取返回值呢?

或者有没有更好的方法来做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2018-11-14 15:26:37

您尝试的内容似乎有点反模式。该函数的目的是触发并忘记,这样您就不会挂起UI。登录函数应将该状态现在已从

代码语言:javascript
复制
loggedIn: false

代码语言:javascript
复制
loggedIn: true

如果你需要一些神奇的响应,如果登录失败抛出一个异常,那么我建议你这样做

代码语言:javascript
复制
this.props.login().catch(err => console.log(err)).then(() => doSomething));

但是,我强烈建议您只发送和侦听ComponentDidUpdate生命周期钩子来重定向或任何您可能需要做的事情。

票数 0
EN

Stack Overflow用户

发布于 2018-11-14 15:27:10

您需要通过分派适当的操作来调用注销函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53294381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档