reactjs - 如何使用 onSubmit 输入 Form 组件?

标签 reactjs typescript typescript-typings

我有自己的Form我想将其与 Parent Component 分开。

const Form: React.FC<any> = ({ children, handleFormSubmit }) => (
  <form onSubmit={handleFormSubmit}>{children}</form>
);

Parent Component

const ParentComponent = () => {
...

const handleFormSubmit = (event: React.FormEvent<HTMLFormElement>) => {
    event.preventDefault();
    publishReview(review).then(() => setReview(initialReviewState));
  };

return (
 <Form onSubmit={handleFormSubmit}>
...
</Form>
)}

我以为handleFormSubmit将从其声明 const handleFormSubmit = (event: React.FormEvent<HTMLFormElement>) 获取类型.

但事实并非如此

我尝试构建一个界面,甚至使用 any类型:

interface FormProps {
  handleFormSubmit: any
}
const Form: React.FC<FormProps>= ({ children, handleFormSubmit }) => (
  <form onSubmit={handleFormSubmit}>{children}</form>
);

但它给出了以下错误:

const Form: React.FunctionComponent<FormProps>
Type '{ children: Element; onSubmit: (event: FormEvent<HTMLFormElement>) => void; }' is not assignable to type 'IntrinsicAttributes & FormProps & { children?: ReactNode; }'.
  Property 'onSubmit' does not exist on type 'IntrinsicAttributes & FormProps & { children?: ReactNode; }'.

最佳答案

这对我有用。只是根据您的猜测进行猜测。谢谢!

handlePostForm = (e: React.FormEvent) => {

关于reactjs - 如何使用 onSubmit 输入 Form 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56322667/

相关文章:

reactjs - typescript 找不到在全局 .d.ts 文件中声明的命名空间

angularjs - 如何将 qrcode-generator 导入 angular 2 应用程序?

javascript - 从 react router v4 中的 redux 操作重定向

javascript - 如何格式化从 Object.values 中获取的 JSON 数据字符串?

javascript - 使用动态键获取 react 状态

angular - Angular 6 中的 debounceTime 和 distinctUntilChanged

angular - 如何销毁可观察对象

javascript - 如何使用 TypeScript 导入自定义 node.js 插件模块

javascript - 使用 React/Socket.IO 无法读取未定义错误的属性 'emit'

javascript - 类型 'any ' 的参数不可分配