【发布时间】:2021-11-28 16:09:24
【问题描述】:
以下复选框可以正常工作,但 TypeScript 会发出警告:
<input
type="checkbox"
onClick={(event: React.MouseEvent<HTMLInputElement>) => {
setIsTOSAccepted(event.target.checked);
}}
defaultChecked={isTOSAccepted}
/>
Failed to compile.
./pages/hu/buyTicket/[eventId].tsx:530:49
Type error: Property 'checked' does not exist on type 'EventTarget'.
528 | style={{ marginRight: "16px" }}
529 | onClick={(event: React.MouseEvent<HTMLButtonElement>) => {
> 530 | setIsTOSAccepted(event.target.checked);
| ^
531 | }}
532 | defaultChecked={isTOSAccepted}
533 | />
error Command failed with exit code 1.
我尝试将React.MouseEvent 替换为其他类型的事件,也尝试将HTMLInputElement 替换为没有运气。
我在这里查看了文档:https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement
但HTMLInputElement 具有click 事件和checked 属性。奇怪。
【问题讨论】:
-
请改用
event.currentTarget.checked。currentTarget将永远是<input>。target可以是任何随机子元素。 -
为什么第二个sn-p说按钮元素
event: React.MouseEvent<HTMLButtonElement>? -
啊,我也试过 Button.. 但
currentTarget帮助了
标签: html reactjs typescript