Oro*_*dan 4 javascript validation yup
我在验证强制字段时遇到问题,这些字段是(可能)空对象的属性。
这是一个示例架构:
object().shape({
catalog: {
brand: string().required()
}
})
Run Code Online (Sandbox Code Playgroud)
如果我尝试根据此架构验证以下对象,我会收到预期的错误:需要品牌。据我了解,为未定义的对象创建了一个默认值,它模仿了模式中对象的形状。这是我所期望的行为,也是我想要的。
{ catalog: undefined }
// "catalog.brand is a required field"
Run Code Online (Sandbox Code Playgroud)
但就我而言,我没有收到未定义的对象,而是收到 null 的对象。我不知道如何使用空值来管理相同的结果。
{ catalog: null }
// No error on catalog.brand
Run Code Online (Sandbox Code Playgroud)
手动将 null 转换为 undefined 是不可能的,因为我收到 null 是有充分理由的。
这是一个 codeandbox,它重现了我的用例:
https://codesandbox.io/s/yup-playground-tbfcj
我真的很感激对此的帮助,谢谢:)
小智 8
解决方案是同时包含nullable()和required()到形状。
例子
const requiredOption = Yup.object()
.shape({
value: Yup.string(),
label: Yup.string(),
})
.nullable()
.required('This field is required.');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12519 次 |
| 最近记录: |