Ответ 1
Правильный способ - использовать .stopPropagation
,
var Component = React.createClass({
handleParentClick: function() {
console.log('handleParentClick');
},
handleChildClick: function(e) {
e.stopPropagation();
console.log('handleChildClick');
},
render: function() {
return <div onClick={this.handleParentClick}>
<p onClick={this.handleChildClick}>Child</p>
</div>;
}
});
Обработчикам событий будут переданы экземпляры SyntheticEvent, кросс-браузерной оболочки вокруг родного события браузера. Он имеет тот же интерфейс, что и родное событие браузера, включая stopPropagation() и preventDefault(), за исключением того, что события одинаково работают во всех браузерах.
Event System