我是react-query的新手。我尝试将它与axios沿着使用来发布数据,虽然后端的数据更新成功,但react-query仍然将数据输出为未定义,这是一个问题,因为我试图从API调用中获得反馈
const {mutate, isLoading} = useMutation(() => {postFunction(rowData)}, {
onSuccess: data => {
console.log(data)
alert(data['message'])
},
onError: data => {
alert(data['message'])
}
})
对于上下文,用于发布数据的axios函数如下所示:
async function editEventLines(data){
const response = await axios.post(`/api/saleOrders/updateEvent`, {data: data, pk:id})
console.log(response.data)
return response.data
}
useMutation中的mutate函数是通过React中的按钮组件调用的:
<Button loading = {isLoading} disabled = {disabled} onClick = {mutate}> Save Changes </Button>
如果你看到console.log语句,看起来useMutation函数中的console.log在控制台的axios函数中的console.log之前被调用,这就是为什么我认为数据是未定义的。你们知道为什么我会有这个问题吗?
1条答案
按热度按时间dy2hfwbg1#
你应该在useMutation钩子中返回你的mutation函数。通过把它放在括号中,这个函数不会返回一个promise,它应该像docs中描述的那样。