Formik Connect реквизит расширяет отсутствующие свойства - PullRequest
0 голосов
/ 26 сентября 2019

Ищите способ избежать записи в моих Props всех 25 ++ свойствах formik при использовании connect().

Ошибка именно такая: Type '{ entry: Entry; }' is missing the following properties from type 'Props': values, errors, touched, isValidating, and 25 more.

Я хочу использовать либо целый formik объект, либо values из него, так что-то вроде этого:

const MyComponent = ({ entry, values }: Props) => { //...

или вот так:

const MyComponent = ({ entry, formik }: Props) => { //...

при его экспорте следующим образом: export default connect(MyComponent); (еще не набрал, может тоже в этом помочь),

и я борюсь стипы:

import * as React from 'react';
import {
  connect,
  FormikProps,
  ...
} from 'formik';
...

interface Props extends Pick<FormikProps<any>, 'values'> {
  entry: Entry;
  values: Pick<FormikProps<any>, 'values'>;
  // values: any; //tryouts
}

или даже

interface Props extends FormikProps<any> {
  entry: Entry;
  // formik?: FormikProps<any>;
}

Я не хочу делать опоры formik опциональными (поэтому часть ?).Но если я не использую ?, я получаю ошибку Property 'values' (or formik) is missing in type '{ entry: Entry; }' but required in type 'Props'..Но я не понимаю, так как все эти реквизиты передаются через connect(), а не из родительского компонента.

Я думал, что ключевое слово extends SomeProps позволяет избежать полного ввода свойств из SomeProps,И поэтому мне не нужно включать formik или values или какой-либо из этих реквизитов в мой Props интерфейс.

Что я не так понял?Каким должно быть объявление типов в этом случае?

...