reactjs - Formik - 如何使用 Yup 验证访问数组内的错误消息?
问题描述
我正在使用 Formik 和 Yup 构建一个带有验证的表单,在缺少的字段上发送特定的错误消息。其中一个字段(问题)是对象数组,我找不到访问每个单独错误消息的方法。
我创建了一个validationSchema,但是当我尝试在Formik 错误道具上传递数组索引时,我得到一个错误。
这是一个对整个表单进行抽象的沙箱。在此示例中,它仅在我注释第二个标签字段时才有效,但在正常情况下,这必须是动态的:
https://codesandbox.io/s/0ov0vxmom0?fontsize=14
我发现这是因为在呈现表单时,错误对象默认为空。因此,如果我通过第一个索引 [0],当对象出错时,Formik 能够访问它。例如,如果我在下一个字段上得到错误,Formik 将尝试访问索引 [1] 上的错误,但错误对象将只有索引 [0]。我必须准确地传递错误位置,因为我的表单可能有多个问题。有小费吗?
解决方案
如果您基于对象类型进行检查,您可以.typeError(msg)
在每个模式的末尾添加。
前任。
Yub.object().typeError('Invalid Object');
Yub.array().typeError('Invalid Array');
推荐阅读
- angular - 如何让 Ngx 实现芯片双绑定
- devexpress - 如何在 DevExpress DateEdit 中显示波斯日历
- regex - 将字符串中的分数替换为小数
- java - 电子邮件服务的 Junit 测试
- java - 使用每个循环和映射创建 JSON 文件 - 它在 for 循环的所有迭代中重复第一个元素值
- android - 在 saveOnIstanceState() 之后 viewPager.setCurrentItem() 似乎不起作用
- java - Java 中的流比原生 for 循环慢得多 - 为什么?
- c# - 动态反序列化一个 json 文件是一些单元格是空的并且得到一个无效的数组
- xml - 如何在不将整个 XML 保存在内存中的情况下从 XML 文件中消除空叶元素?
- php - Symfony3 将表单数据传递给集合内的集合