是的,允许使用基于另一个值的验证.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
Material UI 的 Radio 表单只允许在字段中使用字符串值。例子:
<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 文档提供的示例。