axios ReactuseQuery -未捕获错误时的useMutation

4dbbbstv  于 2022-12-26  发布在  iOS
关注(0)|答案(1)|浏览(103)

我使用Axios和react-query的组合向服务器发出POST请求,该服务器可能会以响应代码400和验证错误进行应答。

export const axiosDefault = axios.create({
    baseURL: API_LINK,
    headers: {
        'Content-Type': 'application/json'
    },
})

const contactMutation = useMutation(
    (data) => axiosDefault.post('/contact', data),
    {
        onSuccess: (response) => {
            console.log('Success', response)
        },
        onError: (error) => {
           console.log('Error', error)
        }
    }
)

但是,当调用contactMutation.mutate(someData)时,来自服务器的错误响应不会被react查询库处理,而是向上传播。onSuccessonError处理程序都不会被调用,变异的isError属性也不会被设置。
我花了几个小时为这件事烦恼,我做错了什么?

aij0ehis

aij0ehis1#

嗨,我也遇到了同样的问题,我通过 Package API函数来尝试/捕获块并抛出捕获的错误来解决。

(data) => {
    try {
       axiosDefault.post('/contact', data),
    } catch (error) {
       throw error
    }
 }

相关问题