StopPropogation基于反应条件

时间:2018-05-30 05:27:23

标签: reactjs react-native

我为div设置onClick事件并基于elementType我执行某些功能,如果它与elementType I不匹配,我试图停止使用stopPropogation。但它确实' nt work.Is有什么方法可以解决?

  handleClick(eventDate , e) {
    if(this.props.eventType === 'DayEvent'){
      this.props.onBarClick(eventDate );
    }
    else{
      console.log(e,'e');
      e.stopPropagation();
    }
  }

<div className="event-class" onClick={() => this.handleClick(value.evenTime)}>
          <div className="o-percentage">Hellloo</div>
        </div>

2 个答案:

答案 0 :(得分:1)

点击div没有默认行为。目前还不清楚你想阻止什么?

同样event.stopPropagation()是阻止事件冒泡祖先并触发他们的事件处理程序。

  

event.stopPropagation() - 防止事件冒泡DOM树,防止任何父处理程序被通知   事件

查看更多https://api.jquery.com/event.stoppropagation/

您可以做的是返回false

  handleClick(eventDate , e) {
    if(this.props.eventType === 'DayEvent'){
      this.props.onBarClick(eventDate );
    }
    else{
      return false;
    }
  }

看看我为你做的这个例子

https://jsfiddle.net/kksnmnwL/1/

答案 1 :(得分:0)

你可以实现它:

handleClick(eventDate , e) {
    if(this.props.eventType === 'DayEvent'){
        this.props.onBarClick(eventDate );
    }
    else {
        e.persist();
        e.stopPropagation();
    }
}