0
我有一個onClick附加到整個組件,只要點擊它關閉部分:reactjs停止傳輸,調用另一個函數以SETSTATE
<div className="container" onClick={this.onClick.bind(this,'str')}>
{this.state.showtoggle ? <Child2 /> : <Child1 />}
</div>
不過的child2組件內,我不希望整個組件應可點擊。 1)我可以將點擊處理程序只附加到Child1 - 與此條件邏輯 2)或者我試圖阻止在child2Propagation - 但狀態沒有像預期的那樣得到更新後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>
我仍然需要這個onklick處理程序在,但不是在整個組件上,只是在圖像上點擊Child2內部,但整個child1 ..?我該如何實現這一點? –
monkeyjs
更新了答案,基本上只是對兩個組件做同樣的事情,將點擊處理程序放在需要的地方。 –