fn1(){
alert('父级');
}
fn2(ev){
ev.stopPropagation();
ev.nativeEvent.stopImmediatePropagation();
alert("子集");
}
componentDidMount(){
document.onclick=function(){
alert('document');
};
this.refs['fa'].onclick=function(ev){
//console.log(this);
console.log(ev.target);
alert("爷爷");
}
}
<p ref="fa" className="fa">
<p onClick={this.fn1.bind(this)}>
<p onClick={this.fn2.bind(this)}>aaaaaaaaaaa</p>
</p>
Verwenden Sie einfach e.stopPropagation(), um zu verhindern, dass das übergeordnete Ereignis sprudelt. Das fn1-Ereignis wird nicht ausgelöst, das Dokumentereignis jedoch?
e.nativeEvent.stopPropagation() verhindert das Sprudeln zum Dokument, aber jedes Mal, wenn auf fa geklickt wird, wird es ausgelöst und ausgelöst. Wenn e.target nicht abgerufen werden kann, führt nur die Erfassung von fn2 zu Ergebnissen Problem Wenn es darum geht, wie können wir nur das äußere Ereignis auslösen, ohne es einzufangen? Was ist der ungefähre Ereignismechanismus von Reaktionsereignissen? Vielen Dank für die Lösung·
不是,这两个其实都是原生的方法。
stopImmediatePropagation和链接stopPropagation,至于nativeEvent应该是ReactNative独有的,React都应该没有这东西。
https://zhuanlan.zhihu.com/p/...看完这个链接你就明白了