如何从操作创建者正确访问错误对象(从后端发送)?



我需要访问从后端发送的错误对象的属性。我得到的错误对象如下所示:

{
"error": {
"type": "BadRequestError",
"message": "Error creating record: Phone number must have 11 digits"
}
}

在我的动作创建器中,我总是发现如下错误(专注于catch块(:

export function myActionCreator(body) {
const someUrl = `${localhost}/api/product`
return async dispatch => {
try{
const data = await axios.post(someUrl, body)
// do stuff/dispatch an action with the data as the payload
} catch (error) {
console.log('error in creating product: ',error)
}
}
}

但是,对于此错误对象,无论我是否执行error/error.type/error.message甚至error.error,我都无法从错误对象访问这些属性。相反,我在控制台中看到的只是:

error in creating product:  Error: Request failed with status code 400
at createError (createError.js:17)
at settle (settle.js:19)
at XMLHttpRequest.handleLoad (xhr.js:60)

而从后端发送的实际错误对象是上面的第一个对象。任何人都可以建议我应该如何正确访问此错误对象吗?

你应该像这样访问err对象:

.catch(err => console.log(err.response.data.message) /*Error creating...*/)

最新更新