Есть еще кое-что, что вам нужно сделать:
CSSTransition
должен иметь опору key
. Когда оно изменилось, переход вступит в силу. - Вам нужно добавить стили перехода самостоятельно, потому что,
React Transition Group is not an animation library like React-Motion, it does not animate styles by itself.
ссылка
Таким образом, дочерний компонент будет выглядеть примерно так:
function Child({ propToAnimate }) {
return (
<>
Child Component
{
node.addEventListener("transitionend", done, false);
}}
classNames="fade"
>
state: {propToAnimate}
); }
И стили (например, для анимации слайдов):
.fade-enter .animate {
opacity: 0;
transform: translateX(-100%);
}
.fade-enter-active .animate {
opacity: 1;
transform: translateX(0%);
}
.fade-exit .animate {
opacity: 1;
transform: translateX(0%);
}
.fade-exit-active .animate {
opacity: 0;
transform: translateX(100%);
}
.fade-enter-active .animate,
.fade-exit-active .animate {
transition: opacity 500ms, transform 500ms;
}
https://codesandbox.io/s/switchtransition-child-component-dk4jo