Redux, наблюдаемый с помощью axios в реакции - PullRequest
0 голосов
/ 24 октября 2019

Добрый день,

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

Мой эпос:

  action$.pipe(
flowing left-to-right, calling each function with the output of the last one.
    filter(action => action.type === "ADD_ARTICLE_EPIC"), 
    switchMap(
      action =>
        from(updateArticle(action.payload)).pipe(
          map(action => {
            console.log(action);
            return { type: "ADD_ARTICLE", payload: action.payload };
          })
        )
      // return { type: "ADD_ARTICLE", payload: action.payload };
    )
  );

Мои аксиосы:

export const updateArticle = async article => {
  const response = await axios.post(`/articles/updateArticle`, article);
  return response.data;
};

1 Ответ

2 голосов
/ 24 октября 2019

Вот пример того, как сделать это с использованием redux и redux-thunk.

API.conversation.sendMessage выполняет аксиальный пост-запрос за кулисами.

  export const sendNewMessage = message => {
  return async dispatch => {
    try {
      const { data } = await API.conversation.sendNewMessage(message);
      dispatch({
        type: SEND_NEW_MESSAGE_OK,
        payload: data,
      });
    } catch (error) {
      dispatch({
        type: SEND_NEW_MESSAGE_ERROR,
        payload: error,
      });
    }
  };
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...