簡體   English   中英

用Typescript反應Redux-Thunk

[英]React Redux-Thunk with Typescript

所以我想用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生命周期掛鈎以進行重定向或可能需要執行的任何操作。

您需要通過調度適當的操作來調用注銷功能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM