首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置Yup对象数组属性的Yup验证

设置Yup对象数组属性的Yup验证
EN

Stack Overflow用户
提问于 2021-11-09 07:57:23
回答 1查看 4.7K关注 0票数 0

我想在对象的Yup数组中设置number属性的验证,这样

每个对象的

  1. 权重必须是数组中的>=0和<=100。数组中所有对象的
  2. 权重之和也必须小于100。

代码语言:javascript
复制
const ParamValidator = Yup.object()
         .shape({
         params: Yup.array()
            .of(
                Yup.object()
                    .shape({
                        name: Yup.string.max(30).required(),
                        weight: Yup.number().min(0).max(100).required(),
                    })
                    .required(),
            )
            .required()

不管我想出了什么,我都能说出我的观点。以最小和最大为单个对象的重量,但不能做到(2.)我怎么才能把所有物体的重量之和算出来。只使用Yup验证

EN

回答 1

Stack Overflow用户

发布于 2021-11-09 13:11:43

代码语言:javascript
复制
    const ParamValidator = Yup.object()
     .shape({
     params: Yup.array()
        .of(
            Yup.object()
                .shape({
                    name: Yup.string.max(30).required(),
                    weight: Yup.number().min(0).max(100).required(),
                })
                .required(),
        )
        .required()
        .test('params',
              'sum of weights of all objects of params should be <= 100',
              (values: any[]) => values.reduce((acc, curr) => acc + curr.weight, 0) <= 100,)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69894597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档