0
을 setState를 다른 함수를 호출, 전파를 중지 I는 구성 요소 종료를 클릭 할 때마다 온 클릭이 전체 구성 요소에 첨부 :reactjs는
<div className="container" onClick={this.onClick.bind(this,'str')}>
{this.state.showtoggle ? <Child2 /> : <Child1 />}
</div>
을하지만, 자식 2 구성 요소 안에, 내가 모든 구성 요소가 있어야하지 않으 클릭 할 수 있어야합니다. 1) 클릭 핸들러를 Child1에 첨부 할 수 있습니까?이 조건부 로직을 자리에두고 있습니다. 2) 또는 child2에서 stopPropagation을 시도하고 있습니다. 그러나 preventDefault ...를 수행 한 후 상태가 예상대로 업데이트되지 않습니다. 자식 2 내부
코드 :
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>
난 여전히이 onclick 처리기가에 있지만 전체 구성 요소가 아니라 Child2 안에 있지만 전체 child1 ..에 클릭해야합니까? 어떻게 수행합니까? –
monkeyjs
답변을 업데이트했습니다. 기본적으로 두 구성 요소 모두에 동일한 작업을 수행하여 클릭 핸들러를 필요한 위치에 배치합니다. –