typescript 为什么复选框事件处理程序中的React `MouseEvent`不是通用的?

vcudknz3  于 12个月前  发布在  TypeScript
关注(0)|答案(4)|浏览(93)

我有一个复选框TSX(JSX)元素:

<input type="checkbox" name={i.toString()} onClick={this.handleCheckboxClick} />

在VS代码的帮助下,我知道this.handleCheckboxClick的输入参数类型是MouseEvent<HTMLInputElement>。所以我实现了它:

private handleCheckboxClick(event: MouseEvent<HTMLInputElement>) {
    ...
}

然后我得到一个错误说[ts] Type 'MouseEvent' is not generic.如下图所示:

我的软件包版本:

"@types/react": "^15.0.29",
"@types/react-dom": "^15.5.0",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"typescript": "^2.3.4",

为什么会这样?

s71maibg

s71maibg1#

您可能正在使用DOM MouseEvent。请尝试使用React.MouseEvent<HTMLInputElement>

xvw2m8pv

xvw2m8pv2#

为了使用React MouseEvent,请确保添加:

import { MouseEvent } from 'react';
1l5u6lss

1l5u6lss3#

您可以使用SyntheticEvent而不是MouseEvent

tyu7yeag

tyu7yeag4#

你只需要检查你是否从React导入你的事件。

import { MouseEvent, MouseEventHandler } from 'react';

相关问题