У меня есть объект с флагом в качестве логического значения и другой элемент в виде массива объектов.
Я хотел бы проверить массив объектов только в том случае, если флаг имеет значение true.
Итак:
{
shouldCheck: false
}
это должно пройти
{
shouldCheck: true
}
это должно сломаться
{
shouldCheck: true,
rules: []
}
это должно сломаться
{
shouldCheck: true,
rules: [1]
}
это должно сломаться
{
shouldCheck: true,
rules: [{other: 'xx'}]
}
это должно сломаться
{
shouldCheck: true,
rules: [right: 'one']
}
это должно пройти
yup схема:
const delaySchema = yup.object().shape({
shouldCheck: yup.boolean(),
rules: yup.mixed()
.when(['shouldCheck'], {
is: (sck) => {
return sck;
},
then: yup.array().of(yup.object().shape({
right: yup.string().required(),
})),
otherwise: yup.mixed().nullable()
}),
});
теперь проблема в том, что он игнорирует внутреннеецените и не проверяйте их.