Reactjs submit事件(react查询)中未定义mutateAsync数据
我目前正在尝试使用React Query向我的API发出请求。当我在组件函数范围内记录数据时,它会很好地记录并给出我期望的数据,它还会在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
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) }