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

时间:2020-04-16 07:15:27

标签: javascript reactjs typescript react-props tsx

我是React Typescript的初学者,并且我已经定义了一些道具,这些道具是我要在 .tsx 文件中使用的 .JS 文件。但是我在我的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

似乎是问题所在,我该如何正确编写?

3 个答案:

答案 0 :(得分:5)

onChange={(e: React.ChangeEvent<HTMLInputElement>): void => handleChange(e.target.value)}

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

const handleChange = (evt: React.ChangeEvent<HTMLInputElement>) => {console.log(evt?.target.value);
};

 <input type="radio" name="Name" checked={true} value="test" onChange={handleChange} />