Mam ReactCSSTransitionGroup używam z modułami CSS (i dynamiczne routing z routera reagowania, ale uważam, że działa zgodnie z oczekiwaniami).ReactCSSTransitionGroup z modułami CSS
<ReactCSSTransitionGroup
component="div"
transitionName={transitions}
transitionAppear
transitionAppearTimeout={1000}
transitionEnterTimeout={2000}
transitionLeaveTimeout={2000}
>
{React.cloneElement(this.props.children, {
key: location.pathname,
})}
</ReactCSSTransitionGroup>
W appear
i leave
przejścia działa idealnie - ale enter
Przejścia nie - po prostu pojawiają się natychmiast, z poprzedniego składowa wygaszania po nowy składnik został wprowadzony.
CSS (za pomocą CSS modułów):
.enter {
opacity: 0.01;
}
.enter.enterActive {
opacity: 1;
transition: opacity 500ms ease-in;
}
.leave.leaveActive {
opacity: 0.01;
transition: opacity 2000ms ease-in;
}
.appear {
opacity: 0.1;
transition: opacity 1000ms ease-out;
}
.appearActive {
opacity: 1;
transition: opacity 1000ms ease-out;
}
--- EDIT ---
odkryłem, że działa zgodnie z oczekiwaniami na trasach dzieci (mam tylko małą garstkę te w mojej aplikacji). Wszystkie trasy, w tym trasy podrzędne, są ładowane dynamicznie, więc nadal nie jestem pewien, co powoduje, że działa w tych przypadkach, ale nie w innych.
tutaj spróbować tej skrzypce, zmieniłem czas .enter.enteractive do 2000 https: //jsfiddle.net/dcfsyre2/, czy możesz wyjaśnić problem, z którym się borykasz? czy mógłbyś napisać skrzypce i wyjaśnić problem? –
Wątpię, czy to z powodu miejsca, w którym importujesz swoje style CSS. Spróbuj zaimportować pliki css do jakiegoś modułu root, aby zadziałał jak najwcześniej. –