我使用formik组件具有以下形式:
cur, err := collection.Find(ctx, bson.M{"createdAt": bson.M{
"$gte": primitive.NewDateTimeFromTime(time.Now())
}})
还有一个使用validateJS验证和翻译验证错误的函数:
<Formik<Values>
initialValues={{ title: data?.name ?? '' }}
validateOnMount
onSubmit={async values => {
// submit
}}
validate={value => {
translateValidationErrors(validate(value, {
title: {
...REQUIRED,
...LENGTH_RANGE(1, 42),
...ALPHABETICAL,
},
}),['myForm.{field}.errors', 'errors'])
}}
>
{({ isValid, isSubmitting, errors }) => {
console.log({isSubmitting, isValid, errors});
// here my error object is empty
const wrappedValidateBtn = (
<Button
className={styles.validateBtn}
loading={isSubmitting}
disabled={isValid === false}
type="submit"
label={t('product.book.choose-title.submitBtn')}
/>
);
return (
<>
{data && (
<Form className={styles.form}>
{!isMobile && wrappedValidateBtn}
<span className={styles.titleInfo}>
{t('product.book.choose-title.content.info')}
</span>
<Field
name="title"
component={Input}
type="text"
placeholder={t(
'product.book.choose-title.content.placeholder',
)}
divClassName={classnames(styles.input, styles.titleInput)}
required
/>
<img
src={typewriter}
alt="typewriter"
className={styles.typewriterImage}
/>
{isMobile && wrappedValidateBtn}
</Form>
)}
</>
);
}}
</Formik>
在我的formik组件的子项中,如果有任何错误,我想禁用“提交”按钮,但是我的对象错误是空的,是否有某种我想念的东西?
在此先感谢您的帮助,如有需要,我可以提供更多信息。