4
私はreact-motion
のためにReactCSSTransitionGroup
を好む。以下のコードでは、ルート変更時にコンポーネントがフェードイン(表示)されますが、残っているコンポーネントがフェードアウトしていない場合、即座に終了します。Reactルータ4ベータ2 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>
非常にありがとうございますPaul!あなたが 'ReactCSSTransitionGroup'を使うときは、直感的な方法で解決することをお勧めします!私はそのバグに注意し、そこから解決策を試してみましょう! :) – Noitidart
こんにちはポール、問題の内容を確認するだけです。私はこれを実装し、フェードイン/アウトは完全に動作しています。私が抱えている問題は、フェードアウトコンポーネントが新しいルートに基づいてコンポーネントに更新されているということです。だから、基本的には同じコンポーネントで消えてしまいます。これはgithubの問題についてですか? – Noitidart
はい、それが問題です。 –