无法从redux-thunk

时间:2018-05-01 07:43:01

标签: reactjs redux 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 => { /**/ })

有效,但它不会发现错误。

1 个答案:

答案 0 :(得分:1)

您需要从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;
    })
  }
}