我使用useMutation挂钩将数据发布到后端。我需要呈现从后端收到的错误消息。我似乎无法正确地分解错误消息。
export const postStuff = () => {
return useMutation(
async (token) =>
await axios({
url: foo,
method: "post",
data: { token },
}),
{
onError: (error) => {
console.log(error.response.data);
// custom error message received successfully here
}
}
);
};`
const {
mutateAsync,
isError: postStuffIsError, // boolean works fine
error
} = postStuff();
console.log(error?.message) // Request failed with status code 400 but I want my custom error message from the BE
1条答案
按热度按时间y1aodyip1#
错误数据与在
onError
回调中发生的方式相同,可以在error?.response.data
上访问,而不是在error?.message
上访问。因此,您可以使用:
请参见executable codesandbox demo here。相关代码如下:
在边注上,您将看到我将
postStuff
重命名为usePostStuff
。这是一个重要的惯例:**我必须以“Use”开头命名我的自定义Hook吗?**请这样做。这个会议是非常重要的。如果没有它,我们就不能自动检查是否违反了钩子规则,因为我们无法知道某个函数内部是否包含对钩子的调用。