#yup #react-hook-form
#ага #реакция-крючок-форма
Вопрос:
Я хочу проверить поля с помощью yup и react-hook-form . Я хочу убедиться, что хотя бы одно из 2 полей будет содержать какое-то значение. По какой-то причине urls
и instructions
не определены (см., Где они напечатаны) при проверке. Есть какие-нибудь идеи, почему это происходит?
Когда я отправляю значения формы, они отображаются как:
{ meta,urls: Array(1), meta,instructions: "" }
Проверочный код:
const schema = yup.object({
processingType: yup.string(),
meta: yup.object().shape({
instructions: yup.string()
.when('urls', {
is: urls => {
console.log('HERE', urls)
return urls[0]?.url === ''
},
then: yup.string().required().min(1),
otherwise: yup.string()
}),
urls: yup.array().of(yup.object().shape({ url: yup.string() }))
.when('instructions', {
is: instructions => {
console.log('THERE', instructions);
return instructions === ''
},
then: yup.array().of(yup.object().shape({ url: yup.string() })).required().min(1),
otherwise: yup.object().shape({ url: yup.string() })
}),
}, ['instructions', 'urls'])
});
const defaultValues = {
processingType: '',
meta: {
instructions: '',
urls: [{ url: '' }],
}
};