Опубликовать запрос избыточный Thunk - PullRequest
1 голос
/ 14 марта 2019

У меня есть GET-запросы, и обычно, когда это удается, я сохраняю данные в хранилище, но для POST-запросов мне нужно знать, успешно ли это выполнено, чтобы выполнить некоторый код (показать сообщение и перенаправить), в документе говорится, что выможет использовать переменную isLoading, но она просто говорит, работает ли служба, но не работает ли она успешно, если я попытаюсь создать новую переменную успеха в хранилище, она будет включена навсегда после запроса, и мне это не нужноили.Я попытался вернуть обещание от создателя действия и обработать ответ непосредственно внутри компонента, но похоже, что он вызывает axios вместо использования приставки.

Мой создатель действия выглядит так:

export function createProject(userId, projectName) {
  return function (dispatch) {
    dispatch({ type: projectsActions.START_CREATE_PROJECT });
    return ProjectsService.createProject(userId, projectName).then(() => {
      dispatch({ type: projectsActions.SUCCESS_CREATE_PROJECT });
    }).catch((error) => {
      dispatch({ type: projectsActions.ERROR_CREATE_PROJECT });
      throw error;
    });
  }
}

1 Ответ

1 голос
/ 15 марта 2019

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

Если вам нужно только отправить запрос по почте и заботиться о его результате только один раз, самый простой способ сделать это - использовать состояние в компоненте, выполняющем запрос.Состояние уровня компонента легко управляется и удаляется из памяти, когда компонент отключен, но, с другой стороны, вы можете захотеть иметь единый источник правды для своего приложения.Вы должны сделать выбор, но ваша реализация Redux верна.

...