Formik + Yup 号码验证

Formik + Yup number validation

您好,我正在尝试使用 Formik + Yup 来验证我的表单。我坚持验证日期的数字,但在我添加数字字段后触摸任何字段都会使应用程序崩溃。如何使用 Yup 正确验证数字的最小值和最大值?

查看我的codesandbox:https://codesandbox.io/s/ly027lklq7

如果您注释掉全天日期字段,应用程序将正常运行。

在访问 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