javascript - yup.validate 仅返回错误数组中的单个字段
问题描述
我正在尝试在 angular7 项目中添加 yup。我已成功将其添加到我的组件中。
readonly optionalRequiredSchema = yup.object().shape({
['@name']: yup.string().required(),
description: yup.string().required(),
['rule-type']: yup.string().required(),
from: yup.object().required(),
source: yup.object().required(),
to: yup.object().required(),
destination: yup.object().required(),
service: yup.object().required(),
application: yup.object().required(),
action: yup.string().required()
});
我正在这样验证
validateData() {
this.optionalRequiredSchema.validate(this.allData)
.then(
(data) => console.log(data)
).catch(err => {
console.log(err);
this.showToast('top-right', 'danger', JSON.stringify(err.errors))
})
}
如果我传递所有空对象来验证它只在错误数组中给出 1 个字段。当我更正时,它显示下一个字段。如何获取所有无效字段的列表。
谢谢
解决方案
是的 validate 函数接受第二个参数选项。通过{abortEarly: false}
将解决您的问题
validateData() {
this.optionalRequiredSchema.validate(this.allData, {abortEarly: false})
.then(
(data) => console.log(data)
).catch(err => {
console.log(err);
this.showToast('top-right', 'danger', JSON.stringify(err.errors))
})
}
推荐阅读
- sql-server - 在 SQL 中将长字符串转换为 ASCII
- dll - 我收到一条错误消息,提示使用 Visual Studio 2017 重建 Pocketsphinx 时未找到 .dll
- intellij-idea - 自动导入不使用关键字import,而是粘贴全限定路径
- wordpress - 在 woocommerce 上更新订单状态时在 FB Messenger 上发送消息
- c# - Ajax 发布仅返回多个选择框的第一个值
- r - 如何对值大于的数据框进行排序
- categories - 如何访问此数组中的类别以显示在我的自定义页面上
- php - CSRF:我需要对没有 cookie 的网站使用 CSRF 令牌吗?
- go - 单个函数中的多个参数类型
- python - Python/Flask:将消息和状态码返回给调用函数?