[英]react put a onChange on <div> , will be triggered when the <input/> in it be changed
下面的這段代碼,當我在輸入中輸入文本時,onChange函數將運行。
為什么ondiv上的onChange可以運行? 在哪里可以找到有關此文檔?
class App extends Component {
render() {
return (
<div className="App">
<GiantInput onChange={(e) => console.log('giant onChange', e.target)}/>
<div onChange={(e) => {
console.log('change!', e);
}}>
輸入2:<input style={{width: '50%', 'border-color': 'black'}}/>
</div>
</div>
);
}
}
當我使用{... others} = props時,我遇到了這個問題,“ onChange”函數包含在其他函數中,並放在一個div上,它使該組件兩次調用onChange,並且我花費大量時間查找為什么。
這與React.js無關 。 這稱為事件冒泡 。
使用e.stopPropagation()
停止事件冒泡。
在你的代碼中
<div onChange={e =>console.log('change!', e)}>
輸入2: <input onChange={e => e.stopPropagation()}
style={{width: '50%', 'border-color': 'black'}}/>
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.