Есть ли способ потребовать поле на основе другого поля с использованием схемы Yup? - PullRequest
0 голосов
/ 07 августа 2020

У меня есть заголовок (поле ввода) и флажок. Я успешно реализовал схему, требующую наличия флажка отдельно. Что я хочу сделать, так это проверить, было ли что-то напечатано в заголовке, если оно пусто, тогда требуется флажок. Я пробовал подписаться на Yup docs, но у меня ничего не получается.

Я пробовал это, но не получаю сообщения об ошибке, если заголовок не заполнен.

const validationSchema = Yup.object({
title: Yup.string()
.required('Required'),
checkbox: Yup.bool()
.when('title', ({ is: true, then: Yup.bool().required('Required') }))
});

И если возможно, есть ли способ проверить поле, используя вместо этого состояние в моем компоненте?

1 Ответ

1 голос
/ 07 августа 2020

Используйте Yup.ref().

 title: Yup.string().required('Title is required'),
 checkbox: Yup.boolean().nullable().required(Yup.ref('title'), "checkbox is required"),
...