【发布时间】:2020-08-12 04:09:09
【问题描述】:
我有两个与 Yup 验证库相关的问题...这些问题相互关联。
第一个问题。
有什么方法可以启用验证,从验证中返回所有错误。看例子:
const petSchema = yup.string().min( 5 ).oneOf( [ 'cat', 'dog' ] );
petSchema.validate( 'ox', { abortEarly: false } ).catch( ( e ) => {
console.log( e );
} );
我希望我会收到来自min 和oneOf 的错误消息,但我只收到一个错误:this must be one of the following values: cat, dog。这是一个愚蠢的例子,但我有不同验证规则的密码表单,我想将这些规则全部显示给用户。我想我可以找到它的其他用例...我认为 abortEarly 应该可以工作,但它不能按预期工作。
第二个问题:
假设我有 email 字段,我想在前端使用 string().required().email() 架构检查它,并使用异步自定义 test 方法在后端再检查一次。
问题是当required 或email 失败时,我的异步test 也会被调用。如果以前的同步验证器失败,有什么办法可以停止调用 async test?这也与第一个问题有关,因为如果我只能显示一个错误并且它在服务器上生成不需要的流量,那么它没有任何意义。
【问题讨论】:
标签: javascript yup