从redux收到第一响应后如何调用支持的API?

时间:2019-10-07 04:30:11

标签: reactjs redux redux-thunk

以下是我的减速器到redux方面。 我想在收到服务器端的响应后再打一个axios呼叫。

这是两个函数,其中包含getListupdateList。所以我的要求是,当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 :(得分:0)

好的,当您从第一次调用中获得成功时,只需调度其他功能 您可以按照以下方式进行操作

 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));
    }
  });
  };
 }

希望有帮助