根据状态变量进行条件 Yup 验证

Posted

技术标签:

【中文标题】根据状态变量进行条件 Yup 验证【英文标题】:Conditional Yup validation according to state variable 【发布时间】:2021-12-27 05:41:25 【问题描述】:

仅当给定变量的状态为真时,是否可以使用 Yup 解析器 RHF 有条件地验证文本字段。

我研究了很多,但找不到一个例子。

谢谢

【问题讨论】:

请提供更多细节。什么样的条件 @Asifvora 我有一个由布尔值组成的状态变量,只有当状态为真时才应该进行验证 两个字段不一样?示例:如果复选框为真,则在 InputBox 上应用验证。 【参考方案1】:

使用Yup.when 进行归档条件库验证。 查看更多详情yup

示例:

你可以使用 Yup 条件

const validationSchema = Yup.object().shape(
  isCompany: Yup.boolean(),
  companyName: Yup.string().when('isCompany', 
    is: true,
    then: Yup.string().required('Field is required')
  ),
  companyAddress: Yup.string().when('isCompany', 
    is: (isCompany) => true,//just an e.g. you can return a function
    then: Yup.string().required('Field is required'),
    otherwise: Yup.string()
  ),
);

并确保相应地更新您的表单。我希望你明白这一点。

【讨论】:

以上是关于根据状态变量进行条件 Yup 验证的主要内容,如果未能解决你的问题,请参考以下文章

我正在尝试使用 Yup 进行条件表单验证,但无法更改值“showfile”的值

Yup条件最大长度验证一个字段

根据 React 功能组件中的状态变量有条件地设置 className

Struts的字符串验证器有条件地对jsp上的另一个变量

使用 Formik 和 Yup 和 React-select 进行验证

使用条件变量进行线程间的同步