您好,我正在尝试使用Formik + Yup验证我的表单。我坚持验证日期的数字,但是在添加数字字段后触摸任何字段都会使应用崩溃。如何使用Yup正确验证数字的最小值和最大值?
查看我的代码和框:https://codesandbox.io/s/ly027lklq7
如果您注释掉全天日期字段,则该应用程序将正常运行。
答案 0 :(得分:1)
在访问touched
中的嵌套项目之前缺少对象验证是导致问题的原因。
例如:
...
props.errors.address && props.errors.address.line1 && props.touched.address.line1
...
...
props.errors.dob && props.errors.dob.day && props.touched.dob.day
...
应该是
...
props.errors.address && props.errors.address.line1 && props.touched.address && props.touched.address.line1
...
...
props.errors.dob && props.errors.dob.day && props.touched.dob && props.touched.dob.day
...
现有验证工作正常。
codesandbox中的固定代码:https://codesandbox.io/s/2omxr4jopp