Formik Yup 日期验证 - 接受欧洲 DD/MM/YYYY 格式

use*_*126 8 validation date yup formik

我正在尝试将YupFormik一起用于我的用户配置文件屏幕。验证工作正常,但它期望用户输入的日期格式为美国格式MM/DD/YYYY而不是应用程序所需的欧洲/英国标准格式DD/MM/YYYY。输入 31/12/1995 验证失败。

  dateOfBirth: Yup.date()
      .required("Date of Birth is required")
      .max(dateToday, "Future date not allowed")
Run Code Online (Sandbox Code Playgroud)

我已经搜索了 Yup 文档和 SO,但我不知道如何做到这一点。有任何想法吗?

小智 1

您可以使用转换方法来解析值。喜欢:

startDate: Yup.date()
    .transform(value => {
      return value ? moment(value).toDate() : value;
    })
    .required("Date of Birth is required")
    .max(dateToday, "Future date not allowed");
Run Code Online (Sandbox Code Playgroud)