reactjs - 如何设置 react-final-form onSubmit 值参数类型 TypeScript

标签 reactjs typescript typescript-typings react-final-form

如何在 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 吗? 还有其他我可以做得更好的选择吗?

最佳答案

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) => {}}>

关于reactjs - 如何设置 react-final-form onSubmit 值参数类型 TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54269600/

相关文章:

javascript - onClick 事件在 react 映射对象中找不到函数

typescript - TypeScript 中的字典类型

具有任意最小长度 N 的 TypeScript 数组,可以很大

reactjs - 在 Material-UI CardMedia 中显示加载器

javascript - 部署到 AWS 时出现 React 应用程序路由问题

typescript - Jest typescript 测试运行两次,一次用于 ts 文件,一次用于 js 文件

typescript - Vue 根据条件选择选项

javascript - 将 ValidatorJS isISIN 转换为 Typescript 并出现错误?

typescript - Typescript 的类型定义管理系统(如 tsd)的最佳解决方案是什么?

javascript - 如何模拟 jest/enzyme 测试的 css 导入?