若要在React中使用Formik验证字段的onBlur事件和其他字段的onChange事件,你需要遵循以下步骤:
npm install formik --save
import React from 'react';
import { Formik, Form, Field, ErrorMessage } from 'formik';
import * as Yup from 'yup';
const validationSchema = Yup.object({
firstName: Yup.string()
.required('Required')
.min(2, 'Minimum 2 characters'),
lastName: Yup.string()
.required('Required')
.min(2, 'Minimum 2 characters'),
});
export const MyForm = () => {
const handleSubmit = (values, { setSubmitting }) => {
setTimeout(() => {
alert(JSON.stringify(values, null, 2));
setSubmitting(false);
}, 400);
};
return (
<Formik
initialValues={{ firstName: '', lastName: '' }}
validationSchema={validationSchema}
onSubmit={handleSubmit}
>
{({ isSubmitting, errors, touched, handleChange, handleBlur }) => (
<Form>
<label htmlFor="firstName">First Name</label>
<Field
type="text"
name="firstName"
onChange={handleChange}
onBlur={handleBlur}
placeholder="First Name"
/>
<ErrorMessage name="firstName" component="div" />
<label htmlFor="lastName">Last Name</label>
<Field
type="text"
name="lastName"
onChange={handleChange}
onBlur={handleBlur}
placeholder="Last Name"
/>
<ErrorMessage name="lastName" component="div" />
<button type="submit" disabled={isSubmitting}>
Submit
</button>
</Form>
)}
</Formik>
);
};
在上述示例中,我们创建了一个包含两个字段(firstName和lastName)的简单表单。我们使用了Yup验证模式来定义验证规则。接着,我们使用handleChange
和handleBlur
事件处理程序来处理onChange和onBlur事件。最后,我们使用ErrorMessage
组件来显示验证错误信息。
领取专属 10元无门槛券
手把手带您无忧上云