Как установить значения response-final-form в onSubmit для параметра типа TypeScript

Как я могу установить изменить тип значения onSubmit в реакции-окончательной форме.

inteface IValues {
    name: string;
}
<Form onSubmit={(values: IValues) => {}}>   // Error happens here
//    Types of parameters 'values' and 'values' are incompatible.
//    Type '{}' is missing the following properties from type 'IFormValues': name

Это работает, но я не могу получить value.name

<Form onSubmit={(values: object) => {
    // Property 'name' does not exist on type 'object'
    values.name
}}>

Я могу привести к IValues ​​как ниже, чтобы извлечь имя.

<Form onSubmit={(values: object) => {
    const { name } = values as IValues;
}}>

onSubmit из Config, я попытался найти способ установить тип FormData, но не смог его найти. В любом случае я могу установить FormData в JSX? И есть ли другой вариант, который я могу сделать лучше?

0 ответов

Типизация значения поддержки response-final-form начиная с версии 6.1.0 (https://github.com/final-form/react-final-form/releases/tag/v6.1.0)

Вы можете добиться этого, просто предоставив универсальный тип для Form составная часть.

import { withTypes } from 'react-final-form'

inteface IValues {
    name: string;
}

const { Form } = withTypes<IValues>()

<Form onSubmit={(values: IValues) => {}}>
Другие вопросы по тегам