【发布时间】:2016-11-13 21:20:31
【问题描述】:
我在整个组件上附加了一个 Onclick,只要单击它就会关闭组件:
<div className="container" onClick={this.onClick.bind(this,'str')}>
{this.state.showtoggle ? <Child2 /> : <Child1 />}
</div>
但是在 child2 组件内部,我不希望整个组件都可以点击。 1)我可以将点击处理程序附加到 Child1 - 使用此条件逻辑 2) 或者我试图在 child2 中停止传播 - 但是在 preventDefault 之后状态没有按预期更新......有什么想法吗?
CHild2 中的代码:
handleClick(event){
event.preventDefault();
event.stopPropagation();
event.nativeEvent.stopImmediatePropagation();
if(event.target.name === 'b2'){
this.setState({
toggleClassname: 'b2',
});
}
}
<button name="b1" onClick={this.handleClick} className={`btn-element ${(this.state.toggleClassname === 'b1') ? 'red' : ''}`}>button1</button>
<button name="b2" onClick={this.handleClick} className={`btn-element ${(this.state.toggleClassname === 'b2') ? 'red' : ''}`}>button2</button>
【问题讨论】:
标签: reactjs preventdefault stoppropagation event-propagation