Reactjs submit事件(react查询)中未定义mutateAsync数据

Reactjs submit事件(react查询)中未定义mutateAsync数据,reactjs,typescript,react-query,Reactjs,Typescript,React Query,我目前正在尝试使用React Query向我的API发出请求。当我在组件函数范围内记录数据时,它会很好地记录并给出我期望的数据,它还会在handleSubmit之前记录正确的数据。当我在handleSubmit中记录我的数据变量时,在提交之后,它总是记录为未定义 // useSignup.ts import axios from "axios"; import { useMutation } from "react-query"; const sign

我目前正在尝试使用React Query向我的API发出请求。当我在组件函数范围内记录数据时,它会很好地记录并给出我期望的数据,它还会在
handleSubmit
之前记录正确的数据。当我在
handleSubmit
中记录我的数据变量时,在提交之后,它总是记录为未定义

// useSignup.ts

import axios from "axios";
import { useMutation } from "react-query";

const signup = (credidentials: any) => {
    return axios.post("/api/signup", credidentials);
};

const useSignup = () => {
    return useMutation(signup);
};

export default useSignup;
//Signup.tsx
常数{
mutateAsync:makeApiRequest,
孤岛,
发行成功,
伊瑟罗,
数据:authData,
}=使用注册();
console.log(authData);//更新良好,并提供正确的数据
const handleSubmit=async(e:FormEvent)=>{
e、 预防默认值();
等待请求(输入);
console.log(authData);//始终未定义
};

因为
等待
生成请求
不会在同一事件处理程序中,在该事件处理程序之后立即从“已定义”的钩子生成数据。它类似于:

const [count, setCount] = React.useState(undefined)

<button onClick={() => {
  setCount(1)
  console.log(count)
}) />

您也可以使用
mutateAsync
,它返回来自突变的数据,但是您需要手动捕获错误,我认为这不是经常需要的。

非常感谢。就在一秒钟前,有人在别的地方回答了完全相同的问题。谢谢你的帮助!
const [count, setCount] = React.useState(undefined)

<button onClick={() => {
  setCount(1)
  console.log(count)
}) />
makeApiRequest(input, { onSuccess: newData => console.log(newData) }