Je préfère ReactCSSTransitionGroup
pour react-motion
. Le code ci-dessous provoque le fondu (apparaître) sur le changement d'itinéraire, MAIS le problème est que le composant sortant ne disparaît pas, il part instantanément.React routeur 4 beta 2 avec ReactCSSTransitionGroup
<Switch>
<FadeRoute exact path="/" component={PageLanding}/>
<FadeRoute path="/login" component={PageLogin}/>
<FadeRoute path="/signup" component={PageSignup}/>
<FadeRoute component={Page404}/>
</Switch>
function FadeRoute({component:Component, ...rest}) {
return (
<Route {...rest} children={({location,match}) => (
<ReactCSSTransitionGroup {...{key:Date.now(), transitionName:'fade', transitionAppear:true, transitionEnter:true, transitionLeave:true, transitionAppearTimeout:300, transitionEnterTimeout:300, transitionLeaveTimeout:300})}>
<Component/>
</ReactCSSTransitionGroup>
)} />
);
}
<style>
.fade-enter, .fade-appear { opacity:0; }
.fade-enter.fade-enter-active,
.fade-appear.fade-appear-active { opacity:1; transition: opacity 300ms; }
.fade-leave { opacity:1; }
.fade-leave.fade-leave-active { opacity:0; transition: opacity 300ms; }
</style>
Merci beaucoup Paul! De cette façon, vous recommandez la solution de manière intuitive en utilisant 'ReactCSSTransitionGroup'! Je vais faire attention à ce bug et essayer les solutions à partir de là! :) – Noitidart
Salut Paul, juste pour vérifier quel est le problème. Je l'ai mis en œuvre et l'effacement et le retour fonctionnent parfaitement. Le problème que j'ai est que le composant de fondu, est mis à jour au composant basé sur la nouvelle route. Donc, c'est fondamentalement disparaître alors dans le même composant. C'est de quoi parle cette question de github? – Noitidart
Oui, c'est le problème. –