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已成功