Как вызвать API с обратным вызовом после получения первого ответа от Redx? - PullRequest
0 голосов
/ 07 октября 2019

Ниже приведены мои редукторы в сторону редуктора. И я хочу вызвать один вызов axios после получения ответа со стороны сервера.

Вот две функции, которые содержат getList и updateList. Поэтому мое требование: когда updateListSuccess ответ получен, мне нужно вызвать функцию getDetails.

Как вызвать функцию getDetails после получения ответа, который выделен жирным шрифтом или звездочкой.

 export function updateList(_id, data) {
  return dispatch => {
    dispatch(updateListLoading());
    axios
      .put(`/api/dataList/${_id}`, data)
      .then(res => {
        **dispatch(updateListSuccess(res.data));**
      })
      .catch(err => {
        if (err.response && err.response.data) {
          dispatch(updateListFail(err.response.data));
        }
      });
  };
}

export function getDetails() {
  return dispatch => {
    dispatch(getDetailsLoading());
    axios
      .get("/api/getDetails")
      .then(res => {
        dispatch(getSuccessResponse(res.data));
      })
      .catch(err => {
        if (err.response && err.response.data) {
          dispatch(getLoadfail(err.response.data));
        }
      });
  };
}

Спасибо.

1 Ответ

0 голосов
/ 07 октября 2019

Хорошо, когда вы получите успех при первом вызове, просто отправьте другую функцию. Вы можете сделать это как

 export function updateList(_id, data) {
 return dispatch => {
dispatch(updateListLoading());
axios
  .put(`/api/dataList/${_id}`, data)
  .then(res => {
    dispatch(updateListSuccess(res.data));
      dispatch(getDetails())
  })
  .catch(err => {
    if (err.response && err.response.data) {
      dispatch(updateListFail(err.response.data));
    }
  });
  };
 }

Надеюсь, это поможет

...