2017-12-04 1 views
0

클릭 후 새 구성 요소를 렌더링하고 추가 할 수 있습니까? 난 내가 JsWindow를 제거하려면 닫기를 클릭 아이콘 후에 나의 jsWindow 구성 요소렌더링 후 클릭 후 새 구성 요소를 추가하십시오.

render(){ 
    return (
     <div className="js-window"> 
     {console.log(this.props)} 
      <Icon icon={close} className="closeBtn" size={24} onClick={(e)=>e.target.parentNode.parentNode.remove()}/> 
      {this.props.children} 
     </div> 
    ) 
} 

렌더링하려면 내 달력 구성 요소

return (
    <span 
    key={date.toString()} 
    className={"day" + (isToday ? " today" : "") + (isCurrentMonth ? "" : " different-month") + (date.isSame(selected) ? " selected" : "")} 
    onClick={()=>select(day)}>{number}</span> 
); 

onclick을 가지고있다.

+1

오히려 _jsWindow_ 구성 요소 토글 모양을 만들기 위해 상태를 사용합니다. _calendar_ 구성 요소의 상태를 토글합니다. – devsourav

답변

0

조건부 렌더링을 사용할 수는 :

{ condition && <Component /> } 
0

구성 요소 상태에서 선택한 날짜에 넣고 그에 따라 구성 요소를 렌더링합니다. 클릭시 상태를 설정하거나 재설정하면 재 렌더링이 트리거됩니다.

기본 예제는 시작하려면 :

state = { 
    day: undefined 
} 

selectDay = day => { 
    this.setState({day}); 
}; 

resetDay =() => { 
    this.setState({day: undefined}); 
}; 

render(){ 
    const day = this.state.day; 
    return day ? (
      <div className="js-window"> 
       <Icon icon={close} className="closeBtn" size={24} onClick={this.resetDay}/> 
       {this.props.children} 
      </div> 
     ) : (
      <span key={date.toString()} className={} onClick={()=>this.selectDay(day)}>{number}</span> 
     ) 
    ) 
} 
관련 문제