yup.validate 错误数组中只有 returns 个字段

yup.validate only returns single field in errors array

我正在尝试在 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 个字段。当我更正它时,它会显示下一个字段。我怎样才能得到所有无效字段的列表。

谢谢

是的,验证函数接受第二个参数选项。通过 {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))


      })
  }