У меня возникла проблема с машинописью при импорте 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, как я могу исправить это, чтобы он снова заработал?
Большое спасибо за вашу помощь!