在 React 中使用 onChange 事件
![在 React 中使用 onChange 事件](/img/React/feature%20image%20-%20react%20input%20onchange.png)
事件系統是 React 框架中最有用的功能之一。
尤其是 onChange
事件是 React 中最常處理的事件之一。它基於 vanilla JavaScript 中眾所周知的 onchange
屬性,但 React 中的 onChange
事件包括一些附加功能。
它還以駝峰命名法編寫,以幫助開發人員將其與常規 JavaScript 事件區分開來。
瞭解 onChange
事件的工作原理可以幫助你編寫更強大的動態表單。
帶有 React 輸入的 onChange
在 React 中,當使用者的輸入以任何方式發生變化時,onChange
事件就會發生。當使用者輸入附加文字、選擇不同選項、取消選中核取方塊或其他類似情況時,輸入可能會發生變化。
想象一下,當你有一個核取方塊輸入並且需要在狀態中儲存使用者的選擇(布林值
值)時的情況。在這種情況下,onChange
將非常有用。每當使用者改變主意並取消選中它時,狀態都會更新。
下面是一個例子:
return (
<input type="checkbox" onChange={(e) => this.setState("status": e.target.value)}/>
)
這是一個 onChange
事件是多麼有用的簡單演示。
我們通過將輸入值儲存在我們的元件 state
中,使這個元素成為一個受控輸入。該術語描述了其內部狀態與 React 元件的狀態
合併以提供單一事實來源的輸入。
請注意,在 JSX 中,JavaScript 表示式需要放在兩個大括號之間。我們也可以單獨定義處理程式並在大括號內呼叫它。
例如:
<input type="checkbox" onChange={(e) => handleChange(e)}/>
對於更復雜的處理程式函式,這將是一種更具可讀性的方法。
在 React 中手動觸發 onChange
事件
在某些情況下,你可能需要繞過預設行為並手動觸發 onChange
事件。
想象一下瀏覽器自動填充了你的密碼,因此 onChange
不會觸發,但你需要它來執行動畫。在這種情況下,你必須手動觸發 onChange
。
為了避免相同事件的重複例項,有時 React 會故意吞下一些事件而不執行它們。解決方案是使用本機值設定器 setNativeValue()
。要深入瞭解該問題,請檢視此有用的部落格文章。
Irakli is a writer who loves computers and helping people solve their technical problems. He lives in Georgia and enjoys spending time with animals.
LinkedIn