首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yup验证规则问题

Yup验证规则问题
EN

Stack Overflow用户
提问于 2021-08-04 10:45:18
回答 1查看 1.8K关注 0票数 0

只是试图获得Yup的句柄,不幸的是,我似乎找不到任何示例来验证嵌套对象和(对象的嵌套数组)在另一个对象中的有效性。

我有这样的事情:

代码语言:javascript
复制
"books": [{
            "info": {
                "dateReleased": null,
                "timeReleased": null
            },
            "reviewers": [
               {
                 "company": "",
                 "name": ""
               }
           ]
}]

我只是不知道信息和审查员所需的Yup验证syntacx是什么,因为我要验证的只是这些值不是null,并且是必需的。

我已经尝试过了,但是没有验证是有效的:

代码语言:javascript
复制
Yup.object().shape({
    books: Yup.array(
                info: Yup.object({
                     dateReleased: Yup.date().required('Rquired')                                
                     timeReleased: Yup.date().required('Required') 
                })
                reviewers: Yup.array(
                     Yup.object({
                       company: Yup.string().required('Required')                                
                       name: Yup.string().required('Required') 
                     })         
                )                   
    )
  }) 

有了上面的内容,我不会收到任何控制台错误,但是我对信息和审阅者的验证规则都没有被触发。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-05 05:28:05

Yup验证

代码语言:javascript
复制
const value = {
  books: [
    {
      info: {
        dateReleased: null,
        timeReleased: null,
      },
      reviewers: [
        {
          company: "",
          name: "",
        },
      ],
    },
  ],
};

const schema = yup.object().shape({
  books: yup.array(
    yup.object().shape({
      info: yup.object().shape({
        dateReleased: yup.date().required('Required'),                            
        timeReleased: yup.date().required('Required') 
      }),
      reviewer: yup.array(
        yup.object().shape({
          company: yup.string().required('Required'),                              
          name: yup.string().required('Required') 
        })
      )
    })
  ),
});

schema.validate(value).catch(err => {
  console.log(err.name); // ValidationError
  console.log(err.errors); // [books[0].info.timeReleased must be a `date` type, but the final value was: `Invalid Date`.]
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68649852

复制
相关文章

相似问题

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