gpt4 book ai didi

reactjs - Formik 值为空

转载 作者:行者123 更新时间:2023-12-03 21:02:11 29 4
gpt4 key购买 nike

我有以下 Formik 表格

<Formik
initialValues={{
email: '',
password: ''
}}
onSubmit={(values, { setSubmitting }) => {
console.log(JSON.stringify(values));
setSubmitting(true);
fetch('/login', {
method: 'POST',
body: JSON.stringify(values),
headers: {
'Content-Type': 'application/json'
}
})
.then(res => res.json())
.then(response => {
console.log(response);
setSubmitting(false);
if (!response.success) return showAlert();
login(response.user);
history.push('/');
})
.catch(console.log);
}}
>
{({ isSubmitting }) => (
<Form className={classes.form}>
<TextField
required
variant="outlined"
margin="normal"
fullWidth
label="Email"
name="email"
autoFocus
/>
<TextField
required
variant="outlined"
margin="normal"
fullWidth
name="password"
label="Wachtwoord"
type="password"
/>
<Button
type="submit"
fullWidth
variant="contained"
color="primary"
className={classes.submit}
disabled={isSubmitting}
>
Log in
</Button>
<Grid container>
<Grid item xs>
<Link href="/register" variant="body2">
{'Nog geen account? Registreer nu!'}
</Link>
</Grid>
</Grid>
</Form>
)}
</Formik>

出于某种原因, onSubmit 中的值是空的,如何将其设置为表单内的值?这个表单和我开始工作的另一个表单之间的唯一区别是这个表单没有验证模式,但我无法想象这是必需的

最佳答案

你应该看看 example in formik's docs .
TextField未连接到 Formik .当TextField的值变化,Formik不改,你需要Field ( import { Field } from 'formik' ) 将呈现 TextField .
email 的示例

<Field
name="email"
render={({ field /* _form */ }) => (
<TextField
required
variant="outlined"
margin="normal"
fullWidth
label="Email"
autoFocus
{...field}
/>
)}
/>

如果您使用的是外部输入,则应该使用这种方式。

关于reactjs - Formik 值为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56795469/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com