Ошибка при импорте типа Formik в formik v2 - PullRequest
1 голос
/ 20 ноября 2019

У меня возникла проблема с машинописью при импорте Formik при обновлении formik с версии v1 до версии v2.

С v1 я использовал этот код:

import { Formik, FormikProps } from 'formik';
[...] 

export class Form<IFormValues> extends Component<IProps<IFormValues>> {
  private form: Formik<IFormValues> | null = null;

  public componentDidUpdate(prevProps: IProps<IFormValues>): void {
    const { props, form } = this;

    if (props.hasToReset && form) {
      form.handleReset();
      props.toggleFormReset(false);
    }
    if (form && props.formErrors && prevProps.formErrors !== props.formErrors) {
      form.setErrors(props.formErrors.fields);
    }
  }

  public render(): ReactNode {
    const { getInitialFormValues, getValidationSchema, onSubmit } = this.props;

    return (
      <Formik
        initialValues={getInitialFormValues()}
        enableReinitialize
        onSubmit={onSubmit}
        validationSchema={getValidationSchema()}
        render={this.renderForm}
        ref={(el: Formik<IFormValues> | null): void => {
          this.form = el;
        }}
      />
    );
  }

  public renderForm = (formikProps: FormikProps<IFormValues>): ReactNode => {
    const { renderMainForm, renderSubForm, inlineSubmitButton, renderBottomButtons } = this.props;

    return (
      <>
        <form onSubmit={formikProps.handleSubmit}>
          <Grid container>
              {renderMainForm(formikProps)}
              {renderBottomButtons(formikProps)}
          </Grid>
        </form>
        {!!renderSubForm && renderSubForm()}
      </>
    );
  };
}

Но в v2 я получил ошибку Typescript: «Не удается найти модуль Formik» для обоих Formik, используемых в качестве типов, (не для компонента)

Я проверил исходный файл "formik / dist / Formik.d.ts"

в v1: экспорт объявить класс Formik ...

вv2: экспортировать функцию объявления Formik ...

Я не эксперт Typescript, как я могу исправить это, чтобы он снова заработал?

Большое спасибо за вашу помощь!

...