无法 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;
})
}
}
我正在从一个组件中调用一个动作:
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;
})
}
}