Yup допускает проверку на основе другого значения с использованием .when
.
Пример:
var inst = yup.object({
isBig: yup.boolean(),
count: yup
.number()
.when('isBig', {
is: true, // alternatively: (val) => val == true
then: yup.number().min(5),
otherwise: yup.number().min(0),
})
});
Радио-формы пользовательского интерфейса материала допускают только строковые значения в поле value
.Пример:
<Radio
checked={this.state.selectedValue === 'a'}
onChange={this.handleChange}
value="a"
name="radio-button-demo"
aria-label="A"
/>
Изменение значения на: value={true}
или любое другое значение, кроме строки, разрывает компонент Radio.Принудительная установка значения радио при проверке yup с помощью yup.boolean
не помогает.
Моя альтернатива - переключение на встроенную проверку, что не является идеей.
Что я пытаюсь сделать: если isBig
возвращает true, требуется, чтобы count был числом не менее 5 цифр, в противном случае игнорируйте его.
Что мне здесь не хватает?Есть ли способ условно проверить связанные значения через yup, используя проверку, отличную от .when?Или я упускаю что-то в компоненте Radio, что очевидно?
Цените любую помощь, примеры Yup онлайн не выходят далеко за рамки того, что документация Yup предоставляет в качестве примеров.