Javascript 切换类,除非在React中单击了子级
我想有一个标题,你可以点击它隐藏/显示它。但是在这个标题上,将有一组按钮,它们将是子元素的一部分。如果你点击这些按钮,我不希望整个事情崩溃 我如何在React中实现这一点?到目前为止,我所做的是将所有内容折叠起来,因为Child位于Parent中,在Javascript 切换类,除非在React中单击了子级,javascript,jquery,reactjs,Javascript,Jquery,Reactjs,我想有一个标题,你可以点击它隐藏/显示它。但是在这个标题上,将有一组按钮,它们将是子元素的一部分。如果你点击这些按钮,我不希望整个事情崩溃 我如何在React中实现这一点?到目前为止,我所做的是将所有内容折叠起来,因为Child位于Parent中,在行下 class Parent extends Component { constructor() { super(); this.state = { show: false
行下
class Parent extends Component {
constructor() {
super();
this.state = {
show: false
}
}
render() {
return (
<div className="row" onClick={() => this.setState({show: !this.state.show})}>
<div className="col-2">
<Child/>
</div>
...
</div>
)
}
}
类父级扩展组件{
构造函数(){
超级();
此.state={
节目:假
}
}
render(){
返回(
this.setState({show:!this.state.show})}>
...
)
}
}
在子对象的onClick事件处理程序中,
添加这一行
event.stopPropagation()
您应该能够在按钮的事件处理程序中使用
stopPropagation()
,以防止它进一步冒泡。有关API的详细信息,请参阅
class Child extends Component {
handleClick(event) {
event.stopPropagation();
doSomething();
}
render() {
return (
<button onClick={e => this.handleClick(e)}>
Click Me!
</button>
);
}
}
类子级扩展组件{
handleClick(事件){
event.stopPropagation();
doSomething();
}
render(){
返回(
这个.handleClick(e)}>
点击我!
);
}
}
噢,哇,我试过了,但我不小心使用了event.preventDefault()
,然后突然停了下来!