如何在Yup/Formik中更改默认的错误文本?

17 浏览
0 Comments

如何在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 (
      
alert('已提交!')}> ); }}

在Formik的props中,`errors`是一个包含字段错误消息的对象。

0