🐡

Yupで他の項目を利用してバリデーションする

2022/12/21に公開
import * as Yup from "yup";
validationSchema={YupJp.object().shape({
  schedule: YupJp.object({
    startAt: YupJp.date().required("開始日時を入力してください"),
    endAt: YupJp.date()
      .required("終了日時を入力してください")
      .test(
	"endAt greater than startAt",
	"終了日時は開始日時より後にしてください",
	(endAt, context) => {
          if (
	    endAt === undefined ||
	    context.parent.startAt === undefined
	  ) {
	    return false;
	  }
	  
	  return endAt > context.parent.startAt;
	}
      ),
  }),
})}

Discussion