使用 Yup JS 验证 3 个字段中是否有一个不为空

我有 3 个字段 phone1、phone2 和 phone3。我想进行验证,因此如果所有内容都为空,它应该发出警报。意味着如果这 3 个字段中的任何一个具有值,那么验证应该通过并且不发出警报。

为此,我使用了 Yup library 。现在我已经创建了下面的代码,它实际上需要所有 3 个字段。我不想要的。

yup.object().shape({
    phone1: yup
        .string()
        .required("Please enter Phone 1"),
    phone2: yup
        .string()
        .required("Please enter Phone 2"),
    phone3: yup
        .string()
        .required("Please enter Phone 3"),
});

我相信我必须使用允许自定义验证的 Yup JS 的 .test() 方法,但我不确定在这种情况下如何编写它。我正在使用 Express 框架来读取请求。

stack overflow Validate if one out of 3 field is not empty using Yup JS
原文答案