验证日期然后将其传输到 iso 字符串反应

Validate dates then transfer it to iso string react

我的问题是我需要使用任何验证库(joi、yup、superstruct..等)来验证我的日期,然后我需要将日期对象转换为 iso 字符串

我使用 Flatpikr 、 react-hook-form 、 joi 或 yup

乍一看这是我的方法

  1. Flatpickr >> 日期 >> 验证 >> toISOString() 如果验证成功

我试图通过 yup 实现第一种方法,但没有希望

我试图在 yup

中进行预和 post 转换

我在他们的存储库中打开了一个问题来解释我的步骤

https://github.com/jquense/yup/issues/1153

我在joi中的方法也没有成功

我使用了这个代码

joi
  .date()
  .iso()
  .required()
  .min(new Date())
  .messages({
    'any.required': `Required.`,
    'date.format': `Required`,
    'date.base': `Should be a type of number`,
    'date.min': `The date should be in future`,
  });

我用过

{ convert : false }

在 joi 选项中防止 joi 转换值

将 convert 设置为 false 时,我的所有验证模式都会成功,即使我的变量是必需的或为空

使用

找到解决方案
.raw()

与 joi

参考文献: https://joi.dev/api/?v=17.3.0#anyrawenabled