私のデータ構造は次のようになります。
{
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
。の場合、必要なオブジェクトを含む配列が指定されていない場合でも、bar はエラーをスローしませんfoo
。true
他のものとして検証するように設定bar
した場合は、次のように言います。
bar: yup.mixed().when('foo', {
is: true,
then: yup.string().required()
otherwise: yup.string.nullable(true)
})
期待どおりのエラーがスローbar
されます。私は何が欠けていますか?