fn1(){
alert('父級(jí)');
}
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>
Utilisez simplement e.stopPropagation() pour empêcher l'événement parent de bouillonner. L'événement fn1 ne se déclenchera pas, mais l'événement document se déclenchera??
e.nativeEvent.stopPropagation() empêche le bouillonnement du document mais le fn1 du parent se déclenche à chaque fois que fa est cliqué, il se déclenchera et se déclenchera en premier. Si e.target ne peut pas être obtenu, seule la capture de fn2 aura des résultats p aaa, alors le problème Lorsqu'il survient, comment pouvons-nous uniquement déclencher l'événement extérieur sans le capturer ? Quel est le mécanisme approximatif des événements de réaction?? Merci pour la solution·
Non, ces deux méthodes sont en fait des méthodes natives.
stopImmediatePropagation et link stopPropagation Quant à nativeEvent, il devrait être unique à ReactNative, et React ne devrait pas avoir cette chose.
https://zhuanlan.zhihu.com/p/...Vous comprendrez après avoir lu ce lien