Я создал некоторую схему регистрации
export const registrationSchema = (translate) => Yup.object().shape({
//... other properties that are validated.
// for example username
username: Yup.string()
.min(6, translate('validation:common.username.min', { min: 6 }))
.max(20, translate('validation:common.username.max', { max: 20 }))
.required(translate('validation:common.username.required')),
DOB: Yup.lazy(value => {
console.log('yup', value);
if (moment().diff(moment(value), 'years') < 18)
// Here return DOB error somehow
})
...
и до сих пор это работает как шарм. Но теперь мне нужно проверить, не старше ли пользователя 18 лет. Я получаю DateOfBirth из средства выбора даты, и я могу проверить, меньше ли оно 18 с моментом.
if(moment().diff(moment(date),'years) < 18)
и это значение даты, которое я получил при использовании Yup.lazy, но не знаю, как выдать ошибку проверки, если младше 18 лет, чтобы отобразить ее в поле DOB. я даже не знаю, использую ли я правильный метод yup. Я хотел использовать yup.date(). но как получить выбранную дату внутри схемы, чтобы проверить, является ли она допустимым возрастом.
lazy
в YUP, я не могу понять это из документов.. - person kuka   schedule 02.07.2019