reactjs - 如何修复“[ts] 属性 'getAttribute' 在类型 'EventTarget' 上不存在”
问题描述
我正在尝试创建一个 onClick 事件类型以在使用 TypeScript 时捕获 React 中的目标属性。但我收到错误“[ts] 属性 'getAttribute' 在类型 'EventTarget' 上不存在。” 任何人都可以帮助提供有关如何解决此问题的最佳实践的见解吗?
我尝试为 event.target 部分使用另一个辅助函数。这样我就可以排版这部分,以及这个函数中的 getAttribute 部分。但是,有人告诉我这不是最佳实践和错误方法。
const Option = (props: OptionProps) => {
const HandleOptionChange = (event: React.MouseEvent<HTMLLIElement>) => {
return props.onOptionChange(event.target.getAttribute('value'));
}
return (
<li
key={props.key}
value={JSON.stringify(props.word)}
onClick={HandleOptionChange}
>
{props.word.value}
</li>
)
}
ts 错误信息:
[ts] 类型“EventTarget”上不存在属性“getAttribute”。任何
解决方案
这对我有用
const HandleOptionChange = (event: React.MouseEvent<HTMLLIElement>) => {
const el = event.target as HTMLInputElement
return props.onOptionChange(el.getAttribute('value'));
}
我刚刚添加HTMLInputElement
为 event.target 类型
推荐阅读
- java - 如何将数据从片段传递到适配器
- reactjs - 使用 Promise 时 API 调用被拒绝
- c# - 生成的对象未销毁问题
- google-chrome-extension - 管理员管理的 Chrome 扩展需要什么才能接受上传到控制台的配置 JSON?
- grafana - 按度量值对重复的面板进行排序
- python - 写类似 groupby 的更好方法?
- excel - 图表宏调整大小
- flutter - 如何使 Flutter 应用程序响应所有类型的屏幕?
- sql-server - 为 .net 4.5.2 安装包 Microsoft.EntityFrameworkCore.SqlServer
- javascript - 用 2x 空格连字符空格匹配字符串