Вы должны передать true
в обнуляемое значение -
nrOfApples: yup.number().min(0).map(999).nullable(true);
From: https://github.com/jquense/yup/issues/500
Рабочий пример: https://runkit.com/xdumaine/5f2816c75a0ba5001aa312b2
Обратите внимание, что если вы добавите required().nullable(true)
, required
переопределит nullable
, и null не будет проверяться.
Обновление:
Вы можете использовать transform
, чтобы преобразовать значение NaN
в null
. Я обновил runkit вот таким:
const contactSchema = yup.object({
name: yup.string()
.required(),
nrOfApples: yup
.number()
.min(0)
.max(999)
.nullable(true)
// checking self-equality works for NaN, transforming it to null
.transform((_, val) => val === val ? val : null)
})