如何在Yup/Formik中更改默认的错误文本?
如何在Yup/Formik中更改默认的错误文本?
如果我点击邮箱输入框,该字段会显示"请输入您的电子邮箱",这是我设置的。然而,在我输入时,当验证检查未通过时,它会显示一个默认的"请输入有效的电子邮箱"的提示,这不是我写的。
对于密码错误的情况,由于我使用了`.matches()`,我可以在屏幕上打印出我想要的文本。那么我如何对邮箱也进行类似的操作呢?
以下是我的Yup对象:
const schema = Yup.object({ email: Yup .string() .email() .required('请输入您的电子邮箱'), password: Yup .string() .required('请输入您的密码') .matches( /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/, "必须包含8个字符,一个大写字母,一个小写字母,一个数字和一个特殊字符" ) });
这是我的Formik组件的样子:
{ setTimeout(() => { alert(JSON.stringify(values, null, 2)); actions.setSubmitting(false); }, 1000); }} validationSchema={schema} > {props => { const { values: { email, password }, errors, touched, handleChange, isValid, setFieldTouched } = props; const change = (name: string, e: { persist: () => void; }) => { e.persist(); handleChange(e); setFieldTouched(name, true, false); }; return ( ); }}
在Formik的props中,`errors`是一个包含字段错误消息的对象。