Javascript 切换类,除非在React中单击了子级

Javascript 切换类,除非在React中单击了子级,javascript,jquery,reactjs,Javascript,Jquery,Reactjs,我想有一个标题,你可以点击它隐藏/显示它。但是在这个标题上,将有一组按钮,它们将是子元素的一部分。如果你点击这些按钮,我不希望整个事情崩溃 我如何在React中实现这一点?到目前为止,我所做的是将所有内容折叠起来,因为Child位于Parent中,在行下 class Parent extends Component { constructor() { super(); this.state = { show: false

我想有一个标题,你可以点击它隐藏/显示它。但是在这个标题上,将有一组按钮,它们将是子元素的一部分。如果你点击这些按钮,我不希望整个事情崩溃

我如何在React中实现这一点?到目前为止,我所做的是将所有内容折叠起来,因为Child位于Parent中,在
行下

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()
,然后突然停了下来!