我有一个电子邮件字段,只有当一个复选框被选中时才会显示(布尔值是 true
)。当表单被提交时,我只需要在选中复选框时填写这个字段(布尔值为 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 和肯尼亚得到了一些错误:
未捕获(在承诺中) TypeError: 无法读取未定义的属性“ length”
在 yupToFormError (formik.es6.js: 6198)
在 Formik.es6.js: 5933
在 < 匿名 >
YupToFormError@formik.es6.js: 6198
而且我也会从 Yes 中得到验证错误。我做错了什么?