我有一个电子邮件字段,只有在选中复选框时才会显示(布尔值为true
)。当表单被提交时,如果复选框被选中,我只需要这个字段(布尔值为真)。
这是我迄今为止尝试过的:
const validationSchema = yup.object().shape({
email: yup
.string()
.email()
.label('Email')
.when('showEmail', {
is: true,
then: yup.string().required('Must enter email address'),
}),
})
我尝试了其他几种变体,但我从 Formik 和 Yup 得到错误:
Uncaught (in promise) TypeError: Cannot read property 'length' of undefined
at yupToFormErrors (formik.es6.js:6198)
at formik.es6.js:5933
at <anonymous>
yupToFormErrors @ formik.es6.js:6198
我也收到了来自 Yup 的验证错误。我究竟做错了什么?