我正在使用Formik和Yup构建带有验证的表单,并在缺少的字段上发送特定的错误消息。字段(问题)之一是对象数组,我找不到访问每个错误消息的方法。
我已经创建了validationSchema,但是当我尝试在Formik错误prop上传递数组索引时,出现错误。
这是一个沙盒,其中包含整个表格的抽象。在此示例中,仅当我注释第二个标签字段时它才起作用,但是在正常情况下,它必须是动态的:
https://codesandbox.io/s/0ov0vxmom0?fontsize=14
我发现发生这种情况是因为,在呈现表单时,默认情况下错误对象为空。因此,如果我传递第一个索引[0],则当对象出现错误时,Formik可以访问它。例如,如果我在下一个字段上出错,Formik将尝试访问index [1]上的错误,但是错误对象将只有index [0]。我必须通过错误位置,因为我的表单可能有多个问题。有提示吗?
答案 0 :(得分:0)
如果要基于对象类型进行检查,则可以在每个模式的末尾添加.typeError(msg)
。
例如。
Yub.object().typeError('Invalid Object');
Yub.array().typeError('Invalid Array');