5

如何在 react-final-form 中设置更改 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 类型但找不到。无论如何我可以在 jsx 中设置 FormData 吗?还有其他选择我可以做得更好吗?

4

1 回答 1

3

react-final-form从6.1.0版本开始支持值类型。

您可以通过简单地向Form组件提供泛型类型来实现它。

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

inteface IValues {
    name: string;
}

const { Form } = withTypes<IValues>()

<Form onSubmit={(values: IValues) => {}}>
于 2019-06-22T23:22:35.200 回答