Formik:如何访问验证方法?

时间:2020-11-02 18:15:09

标签: formik

我使用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组件的子项中,如果有任何错误,我想禁用“提交”按钮,但是我的对象错误是空的,是否有某种我想念的东西?

在此先感谢您的帮助,如有需要,我可以提供更多信息。

0 个答案:

没有答案