在没有字段接触的情况下提交Formik表单时,在TextField上显示验证错误,可以通过以下步骤实现:
下面是一个示例代码:
import React from 'react';
import { Formik, Field, ErrorMessage } from 'formik';
import * as Yup from 'yup';
const validationSchema = Yup.object().shape({
email: Yup.string().email('无效的邮箱地址').required('邮箱地址不能为空'),
password: Yup.string().required('密码不能为空'),
});
const MyForm = () => {
const handleSubmit = (values, { setSubmitting }) => {
// 处理表单提交逻辑
console.log(values);
setSubmitting(false);
};
return (
<Formik
initialValues={{ email: '', password: '' }}
validationSchema={validationSchema}
onSubmit={handleSubmit}
>
{({ isSubmitting }) => (
<form onSubmit={handleSubmit}>
<div>
<label htmlFor="email">邮箱地址</label>
<Field type="email" name="email" />
<ErrorMessage name="email" component="div" />
</div>
<div>
<label htmlFor="password">密码</label>
<Field type="password" name="password" />
<ErrorMessage name="password" component="div" />
</div>
<button type="submit" disabled={isSubmitting}>
提交
</button>
</form>
)}
</Formik>
);
};
export default MyForm;
在上述示例中,我们使用了Formik组件包裹了整个表单,并设置了initialValues和validationSchema属性。在Field组件中,我们使用了Formik的Field组件来代替原生的input组件,并设置了name属性。在ErrorMessage组件中,我们设置了name属性与对应的字段名称相同,用于显示验证错误信息。
这样,在没有字段接触的情况下提交Formik表单时,如果字段验证失败,会在对应的TextField下方显示相应的错误信息。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云