Reactjs Formik值为空
我有以下表格Reactjs Formik值为空,reactjs,formik,Reactjs,Formik,我有以下表格 { log(JSON.stringify(values)); 设置提交(真); 获取(“/login”{ 方法:“POST”, 正文:JSON.stringify(值), 标题:{ “内容类型”:“应用程序/json” } }) .then(res=>res.json()) 。然后(响应=>{ 控制台日志(响应); 设置提交(假); 如果(!response.success)返回showart(); 登录(response.user); 历史推送(“/”); }) .catch(c
{
log(JSON.stringify(values));
设置提交(真);
获取(“/login”{
方法:“POST”,
正文:JSON.stringify(值),
标题:{
“内容类型”:“应用程序/json”
}
})
.then(res=>res.json())
。然后(响应=>{
控制台日志(响应);
设置提交(假);
如果(!response.success)返回showart();
登录(response.user);
历史推送(“/”);
})
.catch(console.log);
}}
>
{({isSubmitting})=>(
登录
{'Nog geen帐户?注册nu!'
)}
由于某些原因,Submit中的值是空的,如何将其设置为表单中的值?此表单与我使用的另一个表单之间的唯一区别是,此表单没有验证模式,但我无法想象这是必需的您应该查看
TextField
未连接到Formik
。当TextField
的值更改时,Formik
不更改,您需要Field
(import{Field}from'Formik'
)来呈现TextField
电子邮件的示例
<Field
name="email"
render={({ field /* _form */ }) => (
<TextField
required
variant="outlined"
margin="normal"
fullWidth
label="Email"
autoFocus
{...field}
/>
)}
/>
(
)}
/>
如果您使用的是外部输入,您应该使用这种方式。您需要传递此信息。
onChangeText={handleChange('email')}
onBlur={handleBlur('email')}
value={values.email}
至文本输入,并输入密码。
您的文本输入不跟踪任何更改或提交
请显示TextField
TextField是React material ui中的一个组件,我只需在其中输入常规文本,然后再提交Formik Fields支持onChange作为默认值,但如果您使用的是其他组件或默认输入标记,则必须通过onChange和handleChanges。谢谢,添加handleChange已成功