Реагируйте на Redux-Thunk с помощью Typescript - PullRequest
0 голосов
/ 14 ноября 2018

Итак, я пытаюсь набрать мои действия Redux с помощью Redux Thunk

Вот действие

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 голосов
/ 14 ноября 2018

Вам необходимо вызвать функцию выхода из системы, отправив соответствующее действие

0 голосов
/ 14 ноября 2018

То, что вы пытаетесь, кажется немного анти-шаблонным.Функция предназначена для запуска и забывания, чтобы вы не повесили интерфейс.Функция входа в систему должна отправлять вашему редуктору, что состояние теперь изменилось с

loggedIn: false

на

loggedIn: true

Если вам нужно какое-то волшебство с ответом, иначе выведите исключение в случае сбоя входа в систему, тогда яЯ бы порекомендовал что-то вроде

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

Однако я настоятельно рекомендую вам просто отправить и прослушать хук жизненного цикла ComponentDidUpdate для перенаправления или всего, что вам может понадобиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...