react onChange 事件是否僅在用戶輸入輸入字段時(shí)觸發(fā)?我想在表單上設(shè)置一個(gè)臟標(biāo)志,這樣當(dāng)用戶導(dǎo)航出頁面時(shí),它會(huì)觸發(fā)一個(gè)對(duì)話框,詢問他是否真的想放棄更改。isDirty 標(biāo)志處于我的組件狀態(tài),并且在用戶輸入輸入字段時(shí)設(shè)置。我擔(dān)心當(dāng)我使用預(yù)定義的輸入值在構(gòu)造函數(shù)中初始化狀態(tài)時(shí),它可能會(huì)意外觸發(fā) onChange 導(dǎo)致狀態(tài)更改并導(dǎo)致在用戶甚至沒有輸入字段時(shí)將 isDirty 設(shè)置為 true?,F(xiàn)在它起作用了。這是預(yù)期的行為嗎,我 100% 安全嗎?代碼示例:handleChange 是否有可能通過在構(gòu)造函數(shù)中初始化狀態(tài)或在按鈕 onClick 處理程序中設(shè)置狀態(tài)來觸發(fā)?class ExampleComponent extends React.Component { constructor(props) { super(props); this.state = { exampleInput: "exampleValue" }; } handleChange = (event) => { this.setState({ exampleInput: event.target.value, }); } onExampleButtonClick = () => { this.setState({ exampleInput: "buttonClicked", }) } render() { return ( <div> <input name="exampleInput" value={this.state.exampleInput} onChange={this.handleChange}/> <button onClick={this.onExampleButtonClick}>Example Button</button> </div> ); }}
是否可以使用 setState 觸發(fā) onChange 事件?
繁華開滿天機(jī)
2021-12-23 10:47:19