【问题标题】:How to call backed API after getting first response from redux?从 redux 获得第一个响应后如何调用支持的 API?
【发布时间】:2020-02-04 09:28:12
【问题描述】:

以下是我在 redux 方面的 reducer。 我想在得到服务器端的响应后拨打一个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));
        }
      });
  };
}

谢谢。

【问题讨论】:

    标签: reactjs redux redux-thunk


    【解决方案1】:

    好的,当您从第一次通话中获得成功时,只需调度您的其他功能 你可以这样做

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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2015-10-28
      • 2018-04-12
      • 2019-11-26
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 2019-12-14
      相关资源
      最近更新 更多