@uzi_no_uzi

Как отключить всплытие событий в React?

return(

    <div className='portfolio-panel' id='porfolioPanel' ref={this.props.link}>
        <div className='portfolio-panel-background' ref={this.props.linkCircle} onTransitionEnd={this.showWorks} >
            <ReactCSSTransitionGroup
                transitionName='portfolio-panel__information'
                transitionEnterTimeout={500}
                transitionLeaveTimeout={500}>
                    {middleElementCircle}
            </ReactCSSTransitionGroup>
            <div style={diskStyle} className='portfolio-panel-disk' id='portfolio-panel-disk'>
                <ReactCSSTransitionGroup
                transitionName='work-item'
                transitionEnterTimeout={500}
                transitionLeaveTimeout={500}>
                    {workItems}
                </ReactCSSTransitionGroup>
            </div>
        </div>
    </div>
)

В данном примере кода отлавливается событие onTransitionEnd={this.showWorks}, когда заканчивается анимация, нужно отобразить элемент внутри ReactCSSTransitionGroup, ReactCSSTransitionGroup сам работает через transition и судя по всему срабатывает та же самая функция onTransitionEnd={this.showWorks} и элемент пропадает. В итоге анимация работает в одну и в другую сторону сразу. Я думаю это из-за всплытия события, как его можно отключить в React?
  • Вопрос задан
  • 2525 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Так же, как и везде:

stop(e) {
  e.stopPropagation();
}

onTransitionEnd={this.stop}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы