Reactjs 如何使用react hook表单发送表单数据?
我是第一次使用react hook表单。我正在尝试将数据发送回我的服务器,但每当我点击submit时,我都无法在第一次尝试中发送数据。但是如果我再次提交,则会将值成功提交到我的服务器Reactjs 如何使用react hook表单发送表单数据?,reactjs,Reactjs,我是第一次使用react hook表单。我正在尝试将数据发送回我的服务器,但每当我点击submit时,我都无法在第一次尝试中发送数据。但是如果我再次提交,则会将值成功提交到我的服务器 const RegisterUser=()=>{ 常量[formData,setFormData]=useState({ 名字:“, 姓氏:“, 电邮:“, 密码:“”, 电话号码:“, }); const schema=yup.object().shape({ firstname:yup.string().re
const RegisterUser=()=>{
常量[formData,setFormData]=useState({
名字:“,
姓氏:“,
电邮:“,
密码:“”,
电话号码:“,
});
const schema=yup.object().shape({
firstname:yup.string().required(“需要名字”),
lastname:yup.string().required(“需要姓氏”),
电子邮件:yup.string().required(“需要电子邮件”),
密码:yup.string().required(“需要密码”),
});
常量{register,handleSubmit,errors}=useForm({
模式:“onBlur”,
解析程序:yupResolver(模式),
});
const{email,password}=formData;
const handleFormSubmit=异步(数据)=>{
setFormData({
电子邮件:data.email,
密码:data.password
});
const newUser={email,password};
试一试{
常量配置={
标题:{
“内容类型”:“应用程序/json”,
},
};
const body=JSON.stringify(newUser);
等待axios.post(`http://localhost:5000/users`,body,config);
}捕捉(错误){
控制台日志(err);
}
// }
};
返回(
提交
我认为您不需要使用async函数来设置数据。如果没有async,它应该可以工作。即使没有async,我仍然无法在第一次尝试时发送数据。我认为您不需要使用async函数来设置数据。如果没有async,它应该可以工作。即使没有async,我仍然无法在第一次尝试时发送数据
const RegisterUser = () => {
const [formData, setFormData] = useState({
firstname: "",
lastname: "",
email: "",
password: "",
phoneNo: "",
});
const schema = yup.object().shape({
firstname: yup.string().required("First name is required"),
lastname: yup.string().required("Last name is required"),
email: yup.string().required("Email is required"),
password: yup.string().required("Password is required"),
});
const { register, handleSubmit, errors } = useForm({
mode: "onBlur",
resolver: yupResolver(schema),
});
const {email, password} = formData;
const handleFormSubmit = async (data) => {
setFormData({
email: data.email,
password: data.password
});
const newUser = { email, password};
try {
const config = {
headers: {
"Content-Type": "application/json",
},
};
const body = JSON.stringify(newUser);
await axios.post(`http://localhost:5000/users`, body, config);
} catch (err) {
console.log(err);
}
// }
};
return (
<Container>
<Form onSubmit={handleSubmit(handleFormSubmit)}>
<Input
type="email"
label="Email"
name="email"
ref={register}
error={!!errors.email}
helperText={errors?.email?.message}
/>
<Input
type="password"
label="Password"
name="password"
ref={register}
error={!!errors.password}
helperText={errors?.password?.message}
/>
<Button type="submit" className="btn btn-primary">
Submit
</Button>
</Form>