我要说的是如果type = 1则验证成员资格对象,确实使用.when()进行了尝试,但必须使用对象的范围(仅当类型= 1时才进行验证
.withUsername("root")
答案 0 :(得分:0)
解决条件字段渲染问题的一种方法是使用三进制和散布。此解决方案确实需要少量的代码重复,并且也许还有其他(更好)的方法可以由您决定是否继续研究是否需要更好的解决方案。
在此示例中,如果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()
}),
}),