用Typescript反应Redux-Thunk

时间:2018-11-14 06:36:07

标签: reactjs typescript react-redux

所以我想用Redux Thunk输入我的Redux操作

这是一个动作

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上键入函数?

或者有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

您尝试执行的操作似乎有点反模式。 该功能本来就是一劳永逸的,所以您不必挂起UI。 登录功能应将状态从

转到现在的减速器
loggedIn: false

loggedIn: true

如果您需要一些具有响应能力的魔术,如果登录失败,则抛出异常,那么我会推荐类似的东西

this.props.login().catch(err => console.log(err)).then(() => doSomething));

但是,我强烈建议您仅调度并侦听ComponentDidUpdate生命周期挂钩以进行重定向或可能需要执行的任何操作。

答案 1 :(得分:0)

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