繁体   English   中英

如果其他字段为真,如何制作作为对象的 Yup 字段。 -是的验证

[英]How to make Yup field which is object, required if other field is true. -Yup validation

我是使用 Yup 验证的新手。 我正在尝试根据条件制作所需的字段。 正如您在下面看到的那样,我想让这个数字对象只有在hasDigital为真时才需要,否则保持它是可选的,我尝试了下面的方法,但它总是说digital.pages是必需的,即使我传递 hasDigital 为假。 我尝试从hasDigital中删除required的标签,但仍然面临同样的问题。

我不知道我做错了什么,在此先感谢您的帮助。

const validationSchema=Yup.object({
  hasDigital:Yup.boolean().required(),
  digital:Yup.Object({
    pages:Yup.number().required(),
    price:Yup.number().required()
    }).when("hasDigital", {
        is:true ,
        then: Yup.object().required(),
        otherwise:Yup.object().optional()})
})

我有类似的问题,我是这样解决的!

const digitalSchema = yup.object().shape({
  pages: yup.number().required(),
  price: yup.number().required(),
});

const validationSchema = yup.object().shape({
  hasDigital: yup.boolean().required(),
  digital: yup.object().when('hasDigital', {
    is: true,
    then: digitalSchema,
  }),
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM