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()
    }),}),

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...