这是一个基本组件。 <ul>
和 <li>
都具有 onClick 功能。我只希望 <li>
上的 onClick 触发,而不是 <ul>
。我怎样才能做到这一点?
我玩过 e.preventDefault()、e.stopPropagation(),但无济于事。
class List extends React.Component {
constructor(props) {
super(props);
}
handleClick() {
// do something
}
render() {
return (
<ul
onClick={(e) => {
console.log('parent');
this.handleClick();
}}
>
<li
onClick={(e) => {
console.log('child');
// prevent default? prevent propagation?
this.handleClick();
}}
>
</li>
</ul>
)
}
}
// => parent
// => child
原文由 dmwong2268 发布,翻译遵循 CC BY-SA 4.0 许可协议
我遇到过同样的问题。我发现 stopPropagation 确实 有效。我会将列表项拆分为一个单独的组件,如下所示: