React查询useMutation + axios post始终将数据返回为“未定义”

evrscar2  于 2022-11-05  发布在  iOS
关注(0)|答案(1)|浏览(199)

我是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之前被调用,这就是为什么我认为数据是未定义的。你们知道为什么我会有这个问题吗?

dy2hfwbg

dy2hfwbg1#

你应该在useMutation钩子中返回你的mutation函数。通过把它放在括号中,这个函数不会返回一个promise,它应该像docs中描述的那样。

... = useMutation(() => postFunction(rowData), ...

相关问题