Я пытаюсь реализовать довольно простую проверку поля/выбора формы. Схема проверки:
vehicleProvider: Yup.object() // This is an object which is null by default
.required('formvalidation.required.message')
.nullable(),
reserveVehicle: Yup.number().when('vehicleProvider', { // This is a number which is null by default
is: provider => provider?.hasReserve,
then: Yup.number()
.required('formvalidation.required.message')
.nullable(),
otherwise: Yup.number().notRequired()
}),
Что я хочу сделать: требовать/проверять только reserveVehicle
, если provider.hasReserve
равно true
. В противном случае не требуйте номер. Я получаю эту ошибку:
«reserveVehicle должен быть типа
number
, но окончательное значение было:NaN
(преобразовано из значенияNaN
)».
Это имеет смысл (отчасти), потому что null
— это не число. Но поскольку я пытаюсь сказать ему, что это не должно требоваться, на мой взгляд, он не должен пытаться его оценивать.
Я пропустил какие-либо ключевые концепции Yup
?
otherwise
может быть причиной ваших проблем, попробуйте добавить.nullable()
к этому. - person Thismatters   schedule 27.12.2019