React(TypeScript)的onchange事件类型

9

在我的 React 组件中,我有单选框输入

<input type="radio" onChange={changeData}>

and

function changeData(e: any) {}

我该如何指定我不想使用的事件类型? enter image description here

你能提供错误的截图吗? - pramod singh
我已经添加了截图。 - Sipan
5个回答

14

看这个

changeData = (e: React.ChangeEvent<HTMLInputElement>)=> {
    .....
}

1
对于单选框输入,我遇到了以下错误: 类型 '(event: React.ChangeEvent<HTMLInputElement>) => void' 不能赋值给类型 '(e: RadioChangeEvent) => void'。 参数 'event' 和 'e' 的类型不兼容。 类型 'RadioChangeEvent' 缺少类型 'ChangeEvent<HTMLInputElement>' 的以下属性:currentTarget、bubbles、cancelable、defaultPrevented 和另外7个属性。 - Sipan

0

你可能想以这种方式编写它:

const changeData: React.ChangeEventHandler | undefined = 
  (event: React.ChangeEvent<HTMLTextAreaElement>) => {}

然后

<input type="radio" onChange={changeData}>

0

只需要这样做:

changeData = (event: Event) => {
      const { value } = event.target as unknown as { value: boolean, };
      setState(value);
};
  
<input type='radio' onChange={changeData} />

而且刮水条纹会消失。


0

您可以将事件类型指定为 React.ChangeEvent:

const changeData = (e: React.ChangeEvent<HTMLInputElement>) => {
  // your implementation here
};

<input type="radio" onChange={changeData} />

React.ChangeEvent类型是一个通用类型,表示DOM元素中的更改事件。HTMLInputElement类型表示HTML输入元素。


0
changeData = (e: React.MouseEvent<HTMLInputElement>): void => { // code }

对于单选框输入,我得到了这个错误:类型'(event: React.MouseEvent<HTMLInputElement>) => void'不能赋值给类型'(e: RadioChangeEvent) => void'。参数'event'和'e'的类型不兼容。类型'RadioChangeEvent'缺少类型'MouseEvent<HTMLInputElement>'的以下属性:currentTarget、bubbles、cancelable、defaultPrevented以及其他7个属性。 - Sipan
现在怎么样?还是一样的吗? - pramod singh
1
你能搜索“RadioChangeEvent”并将其替换为一些有效的类型吗? - pramod singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接