You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Yup表单验证,其中两个字段中的一个是必需的。

我们可以使用Yup的oneOf和when方法来实现这种情况的表单验证。

例如,我们有以下表单:

import * as Yup from 'yup';

const validationSchema = Yup.object().shape({
  firstName: Yup.string(),
  lastName: Yup.string(),
})

const initialValues = {
  firstName: '',
  lastName: '',
}

function FormExample() {
  const handleSubmit = (values) => {
    console.log(values)
  }

  return (
    <Formik
      initialValues={initialValues}
      validationSchema={validationSchema}
      onSubmit={handleSubmit}
    >
      {({ values, errors, touched, handleChange, handleBlur, handleSubmit }) => (
        <Form onSubmit={handleSubmit}>
          <div>
            <label htmlFor="firstName">First Name</label>
            <input
              name="firstName"
              onChange={handleChange}
              onBlur={handleBlur}
              value={values.firstName}
            />
            {errors.firstName && touched.firstName && (
              <div>{errors.firstName}</div>
            )}
          </div>
          <div>
            <label htmlFor="lastName">Last Name</label>
            <input
              name="lastName"
              onChange={handleChange}
              onBlur={handleBlur}
              value={values.lastName}
            />
            {errors.lastName && touched.lastName && (
              <div>{errors.lastName}</div>
            )}
          </div>
          <button type="submit">Submit</button>
        </Form>
      )}
    </Formik>
  )
}

现在,我们想要验证这两个字段中的至少一个是必需的。我们可以使用Yup的oneOf方法来检查这些值,然后使用when方法设置错误消息

import * as Yup from 'yup';

const validationSchema = Yup.object().shape({
  firstName: Yup.string(),
  lastName: Yup.string(),
}).oneOf([Yup.ref('firstName'), Yup.ref('lastName')], 'First name or last name is required');

const initialValues = {
  firstName: '',
  lastName: '',
}

function FormExample() {
  const handleSubmit = (values) => {
    console.log(values)
  }

  return (
    <Formik
      initialValues={initialValues}
      validationSchema={validationSchema}
      onSubmit={handleSubmit}
    >
      {({ values, errors, touched, handleChange, handleBlur, handleSubmit }) => (
        <Form onSubmit={handleSubmit}>
          <div>
            <label htmlFor="firstName">First Name</label>
            <input
              name="firstName"
              onChange={handleChange}
              onBlur={handleBlur}
              value={values.firstName}
            />
            {errors.firstName && touched.firstName && (
              <div>{errors.firstName}</div>
            )}
          </div>
          <div>
            <label htmlFor="lastName">Last Name</label>
            <input
              name="lastName"
              onChange={handleChange}
              onBlur={handleBlur}
              value={values.lastName}
            />
            {errors.lastName && touched.lastName && (
              <div>{errors.lastName}</div>
            )}
          </div>
          <button type="submit">Submit</button>
        </Form>
      )}
    </Formik>
  )
}

在这个示例中,如果既没有填写“firstName”,也没有填写“lastName”字段,将会显示错误消息:“First name or last name is required”。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

集简云本周更新:流程模版中心上线,新增应用:千米网,App评论订阅

**本周更新概要** * 【流程模版中心】上线* 新增应用:【千米网】* 新增内置应用:【App评论订阅】 **1****【流程模版中心】上线**集简云的用户经常反馈的问题是如何配置一个应用软件与另外一个应用软件的连接流程,比如样本要怎么获取,两个应用软件之间的字段要如何配置等等。通过集简云流程模版功能,用户可以快速的找到自己需要的使用流程场景,一键创建,流程配置中需要的样本与字段设置默认...

集简云本周更新: 流程复制与快捷帮助功能上线,新增容联七陌,腾讯云邮件推送,优化Webhook

支持对现有流程复制快速创建新流程。* 新功能上线:帮助中心浮窗,可以快速获取教学视频与帮助文档。* 新功能上线:支持在流程步骤中手动写入变量* 新功能上线:流程步骤选择帐号时增加帐号可用性校验* 新增应用集... 虽然集简云支持在流程步骤中插入变量,但是有时候我们很难获取触发流程时的样本数据,比如: 如果我们的样本数据需要来自差评订单中的数据,我们往往很难获取这个样本数据,但是我们如果知道这个样本中有哪些字段key的时...

干货|8000字长文,深度介绍Flink在字节跳动数据流的实践

**3000多个**大大小小的APP和服务都接入了数据流。* **数据流峰值流量:**当前,字节跳动埋点数据流 **峰值流量超过1亿每秒**,每天处理超过**万亿**量级埋点, **PB级**数据存储增量。* **ETL任务规模:**目... 短视频等不同业务的实时数仓关注的埋点范围实际上都只是其中的一小部分。如果各业务分别使用一个Flink任务,消费抖音埋点Topic,过滤消费各自关注的埋点,需要消耗大量Yarn资源,同时会造成MQ集群带宽扇出严重,影...

【模板推荐】工作省心又省力,全靠简道云自动化流程

**Mautic新增联系人自动同步到简道云数据表单******集成应用:****Mautic + 简道云[![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/562b766fc8c3402580bed7df77... 数据筛选需要的数据,并使用日期时间格式变更调整日期格式,通过字段查询设置审批状态匹配关系,最后有成财务推送项目单据动作添加指定单据。 **适用人群:**财务**推荐指数:**⭐⭐⭐⭐⭐...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

Yup表单验证,其中两个字段中的一个是必需的。 -优选内容

集简云本周更新:流程模版中心上线,新增应用:千米网,App评论订阅
**本周更新概要** * 【流程模版中心】上线* 新增应用:【千米网】* 新增内置应用:【App评论订阅】 **1****【流程模版中心】上线**集简云的用户经常反馈的问题是如何配置一个应用软件与另外一个应用软件的连接流程,比如样本要怎么获取,两个应用软件之间的字段要如何配置等等。通过集简云流程模版功能,用户可以快速的找到自己需要的使用流程场景,一键创建,流程配置中需要的样本与字段设置默认...
集简云本周更新: 流程复制与快捷帮助功能上线,新增容联七陌,腾讯云邮件推送,优化Webhook
支持对现有流程复制快速创建新流程。* 新功能上线:帮助中心浮窗,可以快速获取教学视频与帮助文档。* 新功能上线:支持在流程步骤中手动写入变量* 新功能上线:流程步骤选择帐号时增加帐号可用性校验* 新增应用集... 虽然集简云支持在流程步骤中插入变量,但是有时候我们很难获取触发流程时的样本数据,比如: 如果我们的样本数据需要来自差评订单中的数据,我们往往很难获取这个样本数据,但是我们如果知道这个样本中有哪些字段key的时...
干货|8000字长文,深度介绍Flink在字节跳动数据流的实践
**3000多个**大大小小的APP和服务都接入了数据流。* **数据流峰值流量:**当前,字节跳动埋点数据流 **峰值流量超过1亿每秒**,每天处理超过**万亿**量级埋点, **PB级**数据存储增量。* **ETL任务规模:**目... 短视频等不同业务的实时数仓关注的埋点范围实际上都只是其中的一小部分。如果各业务分别使用一个Flink任务,消费抖音埋点Topic,过滤消费各自关注的埋点,需要消耗大量Yarn资源,同时会造成MQ集群带宽扇出严重,影...
【模板推荐】工作省心又省力,全靠简道云自动化流程
**Mautic新增联系人自动同步到简道云数据表单******集成应用:****Mautic + 简道云[![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/562b766fc8c3402580bed7df77... 数据筛选需要的数据,并使用日期时间格式变更调整日期格式,通过字段查询设置审批状态匹配关系,最后有成财务推送项目单据动作添加指定单据。 **适用人群:**财务**推荐指数:**⭐⭐⭐⭐⭐...

Yup表单验证,其中两个字段中的一个是必需的。 -相关内容

干货 I 字节跳动基于 Apache Hudi 的数据湖实战解析

Hudi 表中的数据可能存在 Base File 和 Log File 中,需要使用 Compaction 进行合并,而且会分布在多个 File Group 中,在部分 File Group 数据量过小或着过大的时候,为了保证读取性能需要进行 File Group 的重分布。... 增量导入的数据所需要的资源与存量数据 Compaction 所需要的资源其实往往是不太一样的。同时会因为执行表服务而影响写入任务的稳定性。比如两个任务并发写入同一张表,哪怕写入的数据是完全不冲突的。由于各自在进行...

集简云携手金数据,帮助企业构建自动化业务流 ,让企业更具竞争力

每一个新产品从提需求到开发再到上线,其中必经的重要环节就是客户体验。所以在产品上线之前,内部经常会发布一些报名表单、反馈表单等邀请用户内测,聆听用户的产品需求与反馈。而这些需求都需要一款高效、便捷、... 字段和API接口,轻松实现企业级业务构建;* 多账号体系,全团队可用,基于数据,高效协同**实现金数据的表单信息同步到协同办公系统**========================7月,集简云团队耗时几个月研发的新产品-语聚AI...

集简云8月更新合集:新增34款集成应用,更新18款应用,新增近300个可用动作

FREE API是一个api的搬运工,为用户收集免费的接口服务,每月更新新的接口,其所有需要填写key等相关密钥已经在后台处理,不需要填写,只是展示免费的接口信息来源,可以在此平台调试相关接口。 官网:https://www.free-api.com **可用执行动作*** 火车票查询* 域名拦截检测* 核酸检测机构查询* 无水印视频解析* 查询风险疫情地区* 中文翻译* 备案信息查询 **应用使用示例****表单系...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

集简云11月新增4大功能,31款集成应用,更新14款应用,近200个可用动作

此时需要添加一个“日期时间格式变更”内置应用步骤来处理,使用起来并不是很方便。 现在日期时间格式的字段增加了自动识别格式并转换功能,您可以直接插入不同应用步骤返回数据中的日期变量,集简云在执... 支持多个条件,条件组判断,满足您的个性化需求。 04**浏览器插件新增功能** ![picture.image](https://p6-volc-communit...

集简云 x 青岛安特翔天丨零代码连接氚云与金蝶云星辰,创新跨系统数据传输的方式

**氚云与金蝶云星辰两个系统不互通,数据无法实现自动同步**每当氚云表单新增客户、项目、供应商以及各种财务单据时,需要企业人员将客户/项目/供应商编码,名称,负责的业务员id等20多项信息一一录入到金蝶云星... **如果要连接2个不同系统的数据,往往需要系统开发,费用高,时间周期长**,并且氚云与金蝶云星辰这种比较灵活的系统,企业经常会调整使用流程,系统字段,这会导致需要不断地进行调整和开发。此外,系统对接往往伴...

集简云本周更新:公式计算,循环执行,金蝶K3S,金蝶云星辰应用

计算结果可以用于后续步骤中使用。下面我们介绍几个常用的公式: **注意:公式计算中使用的符合(例如:() "" 等)均为英文符号** **示例1:获取指定时间** 我们有时需要在... **示例2:字段值转换** 我们有时会遇到需要将一个系统中的字段值按照规则进行转化,比如电商系统可能会包含一个订单状态字段,字段值可能为1,2,3, 分别代表 审核中,已发货,已收货 3种状态。当我们将订...

集简云 x 泛光科技丨零代码连接小满CRM与钉钉宜搭,助力企业业财数据管理实现自动化

LED泛光灯等产品远销海外多个地区,并得到了客户广泛青睐。![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/2bdf38054e8d4237a5d08c564396cc8a~tplv-tlddhu82om-image.imag... 将客户的各项信息存储在其中,便于相关人员查看及汇总。两个系统的功能都无比强大,但同时企业也面临着大量数据需要两个系统间流转。日常工作场景如下: **对于销售人员来说:**每当小满CRM系统新增客...

集简云本周上新4大功能,14款应用,近100执行动作,第三方集成应用突破400+

会面对较多的字段不知道该如何选择,配置起来比较耽误时间,给操作者带来了一些困惑。 为了解决这个问题,我们新增了字段智能匹配功能,可在相关字段的下拉选项中选择【智能匹配】,如:我们的字段需要填写... 正常情况下想要检验流程是否能成功执行,需要先去手动触发一条样本数据,如果这个应用动作是定时触发的,我们还需要等待几分钟,非常不方便。 现在通过【手动执行】功能,在流程开启的情况下,无论你的流程...

基于浏览器上传的表单中包含签名

TOS 支持基于浏览器的 POST 上传对象请求,方便您将内容直接上传到 TOS。使用 POST 上传对象时,您需要表单中增加签名信息。 签名步骤要构建表单中的签名,您需要执行如下操作: 该表单必须包含以下字段以提供签名和相关信息,以便 TOS 可以在收到请求时使用这些信息验证签名。 元素名称 描述 是否必选 policy Base64 编码的安全策略,声明了 POST 请求必须满足的条件。对于签名计算,此策略是您的签名字符串。 是 x-tos-algori...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询