无法 return 来自 redux-thunk 的响应

Can't return response from redux-thunk

我正在从一个组件中调用一个动作:

this.props.createWebsite(this.state)

这会调用一个动作并进入某个状态。操作如下所示:

export const createWebsite = data => {
  return (dispatch, getState) => {
    return axios.post(
        API.path + 'website/', 
        {
            // some data
        }
    )
    .then(response => {

    })
    .catch(error => {

    })
  }
}

我想在调用它的组件中处理响应和错误,而不是在操作本身中。我怎样才能做到这一点?我试过:

this.props.createWebsite(this.state).then(response => { /**/ }).catch(error => { /**/ })

有点工作,但它不会捕获错误。

您需要从 createWebsite 声明中删除捕获。

它处理错误并且不传播它。所以错误丢失了。 获取它:

移除陷阱

export const createWebsite = data => {
  return (dispatch, getState) => {
    return axios.post(
        API.path + 'website/', 
        {
            // some data
        }
    )
    .then(response => {
      return response;    
    })
  }
}

重新抛出异常

export const createWebsite = data => {
  return (dispatch, getState) => {
    return axios.post(
        API.path + 'website/', 
        {
            // some data
        }
    )
    .then(response => {
      return response;
    })
    .catch(error => {
      // Do something
      throw error;
    })
  }
}