с использованием formik, и я хочу использовать несколько входов в качестве переменных для создания объекта даты. Например, наличие поля формы даты рождения, которое зависит от трех вводов, введенных пользователем (год, месяц, день), и отображение ошибки, которая предупредит их, если у них была недопустимая дата (например, 31.02.2020 .
const multipleDependentValidation = Yup.object().shape({
isDay: Yup.boolean(),
isMonth: Yup.boolean(),
isYear: Yup.boolean(),
birthdate: Yup.date().when(['isDay', 'isMonth', 'isYear'], {
is: (isDay, isMonth, isYear) => {
return true;
},
then: Yup.cast(
{ notThis: [Yup.ref('year')], butThis: [Yup.ref('year').string()] },
{ notThis: [Yup.ref('month')], butThis: [Yup.ref('month').string()] },
{ notThis: [Yup.ref('day')], butThis: [Yup.ref('day').string()] }
)
.date()
.nullable()
.required(),
}),
});
multipleDependentValidation
.validate({ isDay: true, isMonth: true, isYear: true, birthdate: true })
.then(function (value) {
console.log(value);
})
.catch(function (err) {
console.log(err);
});