Я использую Formik с TypeScript, и я хочу использовать очень простой компонент формы в TS, внутри другого компонента, из которого я беру defaultValues
и validationSchemas
.
Сложность состоит в том, как получить доступ только к требуемому formikProps и не получить следующую ошибку:
Type '{}' is missing the following properties from type 'Readonly<IProps>': values, errors, touched, isValidating, and 25 more.ts(2740)
(alias) class PasswordFields
import PasswordFields
Вот код для компонента:
interface IProps extends FormikProps<IValues> {
username?: string;
email?: string;
}
interface IValues {
username?: string;
email?: string;
}
И в главном компоненте я называю это так:
render(): ReactNode {
const { mode } = this.props;
return (
<Formik
initialValues={this.getInitialValues()}
validationSchema={this.getValidationSchemas()}
onSubmit={this.handleSubmit}
validateOnBlur={false}
render={({ isSubmitting, status }) =>
(
<Form>
{mode === ActionMode.EDIT_INFO && (
<Fragment>
<InfoFields /> // I am getting the error here..
<GroupSelectField />
</Fragment>
)}
<Button
className="btn btn-primary w-100 mt-5"
disabled={isSubmitting}
loading={isSubmitting}
type="submit"
>
{mode === ActionMode.EDIT_INFO && <span>UPDATE INFO</span>}
</Button>
</Form>
) as ReactNode
}
/>
);
}
Я вроде как стэк на этом. Не могли бы вы сказать мне, как получить доступ только к formikProps, который я хочу, так что TS не жалуется. ?? И у меня тоже есть другая проблема. Как передать реквизит из компонента в формы formik.