编辑:虽然已接受的解决方案有效,但在我的用例中效果更好
我有一个函数可以验证输入字段 A和输入字段 B都不为空,并且根据我的表单的构建方式,我只需编写一个函数来检查这两个字段。(实际函数要复杂得多,所以我选择创建下面的示例函数)
这是我的测试功能:
function isValid(message) {
//I don't use the message variable but I added it anyway
return this.test("isValid", message, function (value) {
if(!value.A) {
return createError({path: `${this.path}.A`, message:"A is empty"});
}
if(!value.B) {
return createError({path: `${this.path}.B`, message:"B is empty"});
}
return true;
})
Run Code Online (Sandbox Code Playgroud)
这样做的结果是,当 A 和 B 为空时,我返回第一个 createError,因此函数的其余部分将被跳过,这就是formik.errors对象的样子:
{
parent: {
A: "A is empty"
}
}
Run Code Online (Sandbox Code Playgroud)
如何创建错误数组并返回它?
我试过:
返回 createErrors() 数组,但我得到了相同的结果,
将 createErrors 与路径和消息数组一起使用,但 formik.errors …