解決React報錯Property?'value'?does?not?exist?on?type?EventTarget
總覽
當(dāng)event參數(shù)的類型不正確時,會產(chǎn)生"Property 'value' does not exist on type EventTarget"錯誤。為了解決該錯誤,將event的類型聲明為React.ChangeEvent<HTMLInputElement> 。然后就可以通過event.target.value 來訪問其值。

這里有個示例用來展示錯誤是如何發(fā)生的。
// 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參數(shù)的類型聲明為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屬性,引用的是事件被派發(fā)的元素。
找出類型
你要找出事件的類型,最簡單的方法是將事件處理內(nèi)聯(lián)編寫,并將鼠標(biāo)懸浮在函數(shù)的event參數(shù)上。
// 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;

截圖顯示,當(dāng)我們將鼠標(biāo)懸停在內(nèi)聯(lián)事件處理器的e變量上時,我們便得到了事件的正確類型。
這種方法適用于所有的事件處理器,一旦你知道了事件的正確類型,你就可以提取你的處理函數(shù)并正確得對其類型聲明。
TypeScript總是能夠推斷出內(nèi)聯(lián)事件處理器的事件類型,因為你已經(jīng)安裝了React的類型定義文件。
# ??? with NPM npm install --save-dev @types/react @types/react-dom # ---------------------------------------------- # ??? with YARN yarn add @types/react @types/react-dom --dev
總結(jié)
為了解決文章開頭的錯誤,我們需要正確的聲明event參數(shù)的類型。最便捷的找出事件類型的方式是,內(nèi)聯(lián)編寫事件處理函數(shù),并將鼠標(biāo)懸浮到e變量上,從而查看真正的事件類型。
原文鏈接:bobbyhadz.com/blog/react-…
以上就是解決React報錯Property 'value' does not exist on type EventTarget的詳細(xì)內(nèi)容,更多關(guān)于React 報錯的資料請關(guān)注腳本之家其它相關(guān)文章!
- 解決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'
相關(guān)文章
React利用scheduler思想實現(xiàn)任務(wù)的打斷與恢復(fù)
這篇文章主要為大家詳細(xì)介紹了React如何利用scheduler思想實現(xiàn)任務(wù)的打斷與恢復(fù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下2024-03-03
React jsx轉(zhuǎn)換與createElement使用超詳細(xì)講解
這篇文章主要介紹了React jsx轉(zhuǎn)換與createElement使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-11-11
React Native之prop-types進(jìn)行屬性確認(rèn)詳解
本篇文章主要介紹了React Native之prop-types進(jìn)行屬性確認(rèn)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
React?Fiber?樹思想解決業(yè)務(wù)實際場景詳解
這篇文章主要為大家介紹了React?Fiber?樹思想解決業(yè)務(wù)實際場景詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
hooks寫React組件的5個注意細(xì)節(jié)詳解
這篇文章主要為大家介紹了hooks寫React組件的5個需要注意的細(xì)節(jié)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

