Я новичок в реакции и пытаюсь добавить эффект постепенного появления в элементах списка результатов поиска. Он создает все классы, но по какой-то причине анимация не происходит.
Код
import { CSSTransition, TransitionGroup } from "react-transition-group";
return (
<TransitionGroup component="ul" className="venue-list">
{searchVenues.map(item => (
<CSSTransition
key={item.venue.id}
timeout={500}
classNames="fade"
>
<li className="venue-list__item">
<Link
to={`/venues/${item.venue.id}`}
className="venue-list__itemLink"
>
<div className="venue-list__cover" />
<img
src={`${item.venue.photos.groups[0].items[0].prefix}128${item.venue.photos.groups[0].items[0].suffix}`}
alt="Venue Best Img"
className="venue-list__image"
/>
<div className="venue-list__onTopData">
<h3 className="venue-list__venue-name">{item.venue.name}</h3>
<div className="venue-list__venueInfo">
<div className="venue-list__userWrapper">
<div className="left">
<img src="/image/user-icon.png" alt="Icon" />
</div>
<div className="right">
<span className="user-text">{item.venue.stats.tipCount}</span>
</div>
</div>
<div className="venue-list__tagWrapper">
<div className="left">
<img src="/image/tag-icon.png" alt="Icon" />
</div>
<div className="right">
<ProgressBar price={ item.venue.price.tier } />
</div>
</div>
<div className="venue-list__ratingWrapper">
<img src="/image/triangle.png" alt="icon" />
<span className="rating-text">{item.venue.rating}</span>
</div>
</div>
</div>
</Link>
</li>
</CSSTransition>
))}
</TransitionGroup>
);
};
CSS
.fade-enter {
opacity: 0.01;
transform: translate(-100%);
}
.fade-enter-active {
opacity: 1;
transition: opacity 1500ms ease-in;
transform: translate(0);
}
.fade-exit {
opacity: 1;
}
.fade-exit-active {
opacity: 0.01;
transform: translate(-100%);
transition: opacity 1500ms ease-in;
}
Я использую CSSTransitiongroup.
но по какой-то причине это не работает. Я просто хочу, чтобы анимация происходила во время первого монтирования. Я не знаю, что происходит не так. Любая помощь будет оценена.