我尝试进行一个react查询变异(使用axios,但是如果切换到fetchapi,我会得到相同的行为)。
我是这样安排的。
const mutation = useMutation( () => { axios.post("http://swapi.dev/api/foobar", {}); }, { onSuccess: () => { console.log("success"); }, onError: () => { console.log("error"); }, } );
我按如下方式激发突变。
mutation.mutate();
每次控制台显示“success”时。这个 onError 处理者从不开火。在Chrome的network选项卡中查看时,调用返回预期的错误(以及显示控制台错误)。
onError
有人能给我指出正确的方向吗?
useMutation 第一个参数需要一个返回承诺的函数。这就是所谓的突变函数。你不是在回报承诺,而是在回报虚无。您需要使用async/await或返回axios的承诺。
const mutation = useMutation( () => { return axios.post('http://swapi.dev/api/foobar', {}) }, { onSuccess: () => { console.log('success') }, onError: () => { console.log('error') } } )