当条件满足时获取 yup 的当前值

nil*_*nxp 3 html validation reactjs yup react-hook-form

我有两个日期字段,开始日期和结束日期。我想知道如何设置验证以不接受开始日期高于结束日期,反之亦然。

阅读 yup 文档我看到了when 条件,但它只是从其他字段获取值!

提交日期

import { date, object } from 'yup';

export const yupSchema = object({
  startAt: date().typeError('Invalid date').nullable(),
  endAt: date().typeError('Invalid date').nullable(),
});

Run Code Online (Sandbox Code Playgroud)

efr*_*fru 6

您可以使用ref's - 不需要when

示例代码:

const validationSchema = Yup.object().shape({
    arrivalDate: Yup.date().required(),
    departureDate: Yup.date().required().min(Yup.ref('arrivalDate'), 'Departure date must be after arrival date')})
Run Code Online (Sandbox Code Playgroud)

上次我检查时when没有收到当前值,只收到您正在检查的同级字段的值。在 Github 上查看这个问题,有人问了这个确切的问题。