Моя структура данных выглядит следующим образом:
{
foo: true,
bar: {
baz: [{label: 'mario', url: 'https://nintendo.com'}]
}
}
А мой yup
валидатор выглядит так:
const schema = yup.object().shape({
foo: yup.boolean(),
bar: yup.mixed().when('foo', {
is: true,
then: yup.object().shape({
baz: yup.array.of(
yup.object().shape({
label: yup.string.required(),
url: yup.url().required()
})
)
}),
otherwise: yup.object().nullable(true)
})
})
Но проверка не работает для bar.baz
;если foo
равно true
, bar никогда не выдаст ошибку, если ей не присвоен массив с необходимыми объектами.
Если я установил bar
для проверки как что-то еще, скажите:
bar: yup.mixed().when('foo', {
is: true,
then: yup.string().required()
otherwise: yup.string.nullable(true)
})
Выдает ошибку для bar
, как и ожидалось.Чего мне не хватает?