如何解决Yup验证架构对象条件验证
我要说的是如果type = 1则验证成员资格对象,确实使用.when()进行了尝试,但必须使用对象的范围(仅当类型= 1时才进行验证
.withUsername("root")
解决方法
解决条件字段渲染问题的一种方法是使用三进制和散布。此解决方案确实需要少量的代码重复,并且也许还有其他(更好)的方法可以由您决定是否继续研究是否需要更好的解决方案。
在此示例中,如果type === 1
,则所有字段均为required
,否则不是必需的,而是可选的。
memberShip: Yup.object()
.shape({
...(type === 1 ? {
memberShipNo: Yup.string().required('MemberShip Number is required.'),memberShipStart: Yup.string().required('MemberShip Number is required.'),fee: Yup.string().required('MemberShip Number is required.')
} : {
memberShipNo: Yup.string(),memberShipStart: Yup.string(),fee: Yup.string()
}),}),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。