Я работаю над приложением карусели, и мне нужно использовать React Transition Group для его анимации.По какой-то причине я не могу заставить классы применяться правильно.
Это смесь проприетарного и открытого кода, поэтому, если этого примера недостаточно, я рад расширить свои примеры.
React render () вызывает это:
{this.props.slides.map((slide, index) => (
<CSSTransition
key={this.index}
in={this.appearHome}
appear={true}
timeout={600}
classNames="carouselTransition"
>
<CarouselSlide
key={index}
index={index}
activeIndex={this.state.activeIndex}
slide={slide}
/>
</CSSTransition>
))}
И тогда CSS выглядит так:
/* appear on page load */
.carouselTransition-appear {
opacity: 0;
z-index: 1;
}
.carouselTransition-appear.carouselTransition-appear-active {
opacity: 1;
transition: opacity 600ms linear;
}
.carouselTransition-enter {
opacity: 0;
z-index: 1;
}
.carouselTransition-enter.CarouselTransition-enter-active {
opacity: 1;
transition: opacity 300ms linear;
}
.carouselTransition-exit {
opacity: 1;
}
.carouselTransition-exit.carouselTransition-exit-active {
opacity: 0;
transition: opacity 300ms linear;
}
.carouselTransition-exit-done {
opacity: 0;
}
Применяется appear
CSS, но когда я циклическиКарусель Я вижу, как классы enter
и exit
выпадают из div'ов и никогда не возвращаются.Я подозреваю, что я делаю что-то не так с key={index}
, который я прочитал, является антипаттерном, но я не уверен, как это исправить.
Опять же, если требуется больше кода, произнесите слово!