首页 > 解决方案 > 如何修复“[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”。任何

标签: reactjstypescriptevents

解决方案


这对我有用

const HandleOptionChange = (event: React.MouseEvent<HTMLLIElement>) => {
    const el = event.target as HTMLInputElement
    return props.onOptionChange(el.getAttribute('value'));
  }

我刚刚添加HTMLInputElement为 event.target 类型


推荐阅读