首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Yup when嵌套对象中的条件

Yup是一个流行的JavaScript表单验证库,它可以用于验证前端应用程序中的表单输入。当使用Yup进行嵌套对象中的条件验证时,可以使用以下方法:

  1. 使用when方法:when方法允许根据其他字段的值来设置条件验证规则。它接受两个参数:第一个参数是要依赖的字段的名称,第二个参数是一个对象,其中包含条件和验证规则。
  2. 条件对象:条件对象用于指定条件和验证规则。它可以包含以下属性:
    • is:指定要比较的字段的值。
    • then:如果条件满足,则应用的验证规则。
    • otherwise:如果条件不满足,则应用的验证规则。

下面是一个示例,演示如何在Yup中使用when方法进行嵌套对象中的条件验证:

代码语言:txt
复制
import * as yup from 'yup';

const schema = yup.object().shape({
  name: yup.string().required('姓名不能为空'),
  age: yup.number().required('年龄不能为空'),
  isAdult: yup.boolean(),
  address: yup.object().when('isAdult', {
    is: true,
    then: yup.object().shape({
      street: yup.string().required('街道不能为空'),
      city: yup.string().required('城市不能为空'),
    }),
    otherwise: yup.object().shape({
      country: yup.string().required('国家不能为空'),
    }),
  }),
});

// 使用schema验证数据
const data = {
  name: 'John',
  age: 25,
  isAdult: true,
  address: {
    street: '123 Main St',
    city: 'New York',
  },
};

schema.validate(data)
  .then(valid => console.log(valid))
  .catch(error => console.log(error));

在上面的示例中,我们定义了一个包含嵌套对象的验证规则。根据isAdult字段的值,我们设置了两种不同的验证规则:如果isAdulttrue,则需要验证address对象中的streetcity字段;如果isAdultfalse,则需要验证address对象中的country字段。

这是一个简单的示例,展示了如何在Yup中使用when方法进行嵌套对象中的条件验证。根据实际需求,您可以根据不同的条件设置更复杂的验证规则。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云主页:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(TBC):https://cloud.tencent.com/product/tbc
  • 腾讯云元宇宙解决方案:https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券