类型 'void' 不可分配给类型 '((event: ChangeEvent<HTMLInputElement>) => void) React TypeScript

Type 'void' is not assignable to type '((event: ChangeEvent<HTMLInputElement>) => void) React TypeScript

我是 React Typescript 的初学者,我定义了一些道具是 .JS 文件,我想在 .tsx[=23 中使用=] 文件。但我在我的 TypeScript 行之一收到此错误:

 <MyTextField style={{width:'60%'}}  name='ActivationDate' type='date' defaultValue={values1.ActivationDate} onChange={handleChange('ActivationDate')}/>
Type 'void' is not assignable to type '((event: ChangeEvent<HTMLInputElement>) => void) | ((event: ChangeEvent<HTMLSelectElement>) => void) | ((event: ChangeEvent<HTMLTextAreaElement>) => void) | undefined'.

CodeSandbox 包含我的 JS 文件和 TSX 文件: https://codesandbox.io/s/tsx-rj694

似乎是什么问题,我怎样才能正确地写这个?

我假设您没有将事件对象传递给 handleChange 方法。

这是您应该修改 onChange 事件处理程序的方式:

onChange={() => handleChange('ActivationDate')}

请注意,如果您需要在 onChange 调用中访问事件对象,则需要明确指定正确的类型。

onChange={handleChange}

并且当你定义函数时,

const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
  // do the rest here
}
onChange={(e: React.ChangeEvent<HTMLInputElement>): void => handleChange(e.target.value)}