reactjs - React zodResolver放置约束日期应该大于现在

标签 reactjs validation zod

我正在使用 zod 库来验证我的 react 表单。我正在使用这个架构。

import * as zod from "zod";

export const appointmentSchema = zod.object({
  title: zod.string().nonempty("Please enter a title"),
  description: zod.string(),
  scheduledDate: zod.date()
});

export type appointmentFormData = zod.infer<typeof appointmentSchema>;

有没有办法向日期时间添加验证,以便在提交的日期时间大于 date.now 时抛出错误?

最佳答案

你应该这样尝试:

import * as zod from "zod";

export const appointmentSchema = zod.object({
  title: zod.string().nonempty("Please enter a title"),
  description: zod.string(),
  scheduledDate: zod
  .instanceof(Date, { message: 'The Date field is required.' })
  .refine((date) => {
      return date < new Date(Date.now());
    }, "The date must be before today"),
});

export type appointmentFormData = zod.infer<typeof appointmentSchema>;

您可以在以下链接找到 zod 的文档:https://github.com/colinhacks/zod

关于reactjs - React zodResolver放置约束日期应该大于现在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66275495/

相关文章:

arrays - 从数组 Zod 中对象的键推断类型

reactjs - 基于表单字段的zod条件验证

validation - CakePHP 自定义验证规则仅在创建时检查唯一字段组合

reactjs - 从嵌套类组件更改 React Context 中的值

javascript - 无法读取未定义的属性,如何避免崩溃?

javascript - ReactJS 在 onClick 中传递对象而不是函数

spring - 如何使用 HibernateValidator 验证 MultipartFile?

python - Pydantic - 在response_model中使用 "Union"和 "Field"时无法序列化/验证

reactjs - React-testing-library 如何测试条件渲染