解决React报错Property 'value' does not exist on type EventTarget
总览
当event
参数的类型不正确时,会产生"Property 'value' does not exist on type EventTarget"错误。为了解决该错误,将event
的类型声明为React.ChangeEvent<HTMLInputElement>
。然后就可以通过event.target.value
来访问其值。
这里有个示例用来展示错误是如何发生的。
// App.tsx function App() { // 👇️ incorrect event type const handleChange = (event: Event) => { console.log(event.target?.value); }; return ( <div> {/* ⛔️ Property 'value' does not exist on type 'EventTarget'. */} <input onChange={handleChange} type="text" id="message" /> </div> ); } export default App;
正确声明类型
为了解决该错误,我们必须将event
参数的类型声明为React.ChangeEvent<HTMLInputElement>
。
// App.tsx function App() { // ✅ correct event type const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => { console.log(event.target.value); }; return ( <div> <input onChange={handleChange} type="text" id="message" /> </div> ); } export default App;
React中的ChangeEvent
类型有一个target
属性,引用的是事件被派发的元素。
找出类型
你要找出事件的类型,最简单的方法是将事件处理内联编写,并将鼠标悬浮在函数的event
参数上。
// App.tsx function App() { // 👇️ event is written inline return ( <div> <input onChange={e => console.log(e.target.value)} type="text" id="message" /> </div> ); } export default App;
截图显示,当我们将鼠标悬停在内联事件处理器的e
变量上时,我们便得到了事件的正确类型。
这种方法适用于所有的事件处理器,一旦你知道了事件的正确类型,你就可以提取你的处理函数并正确得对其类型声明。
TypeScript总是能够推断出内联事件处理器的事件类型,因为你已经安装了React的类型定义文件。
# 👇️ with NPM npm install --save-dev @types/react @types/react-dom # ---------------------------------------------- # 👇️ with YARN yarn add @types/react @types/react-dom --dev
总结
为了解决文章开头的错误,我们需要正确的声明event
参数的类型。最便捷的找出事件类型的方式是,内联编写事件处理函数,并将鼠标悬浮到e
变量上,从而查看真正的事件类型。
原文链接:bobbyhadz.com/blog/react-…
以上就是解决React报错Property 'value' does not exist on type EventTarget的详细内容,更多关于React 报错的资料请关注脚本之家其它相关文章!
- 解决React报错Property does not exist on type 'JSX.IntrinsicElements'
- 解决React报错Property value does not exist on type HTMLElement
- 解决React报错Cannot assign to 'current' because it is a read-only property
- Can't perform a React state update on an unmounted component报错解决
- Objects are not valid as a React child报错解决
- 解决React报错No duplicate props allowed
- 解决React报错`value` prop on `input` should not be null
- 解决React报错Property 'X' does not exist on type 'HTMLElement'
相关文章
reactjs学习解决unknown at rule @tailwind css
这篇文章主要介绍了reactjs学习解决unknown at rule @tailwind css问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-02-02Shopee在React Native 架构方面的探索及发展历程
这篇文章主要介绍了Shopee在React Native 架构方面的探索,本文会从发展历史、架构模型、系统设计、迁移方案四个方向逐一介绍我们如何一步步地满足多团队在复杂业务中的开发需求,需要的朋友可以参考下2022-07-07react拖拽react-beautiful-dnd一维数组二维数组拖拽功能
二维数组可以拖拽,但是不可以编辑+拖拽,如果想要实现编辑+拖拽,还是需要转换成一维数组,本文给大家介绍react拖拽react-beautiful-dnd的相关知识,感兴趣的朋友跟随小编一起看看吧2024-03-03修复Next.js中window is not defined方法详解
这篇文章主要为大家介绍了修复Next.js中window is not defined方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-12-12
最新评论