私は複数のページのコンテンツを表示するReactコンポーネントを持っています。アプリケーションの他の場所にあるボタンをクリックすると、このコンポーネントが表示する内容が変更されます。このトランジションはカスタムのJavascriptトランジションであり、CSSのトランジションではないため、ReactCSSTransitionGroupは使用できません。Reactでトランジションアニメーションを実装するにはどうすればよいですか?
私は考えることができる2つのアプローチがあります。どちらも小道具としてtransition
を渡しますが、次のページがどのようにコンポーネントに渡されるかは異なります。
オプションは
このオプションは、アニメーション化する必要があることを示すために、transition
小道具の存在を使用しています。それはpage1
をその内部にstate
のままにしておき、遷移が完了するまでレンダリングできるようにします。完了すると、コンポーネントは親コンポーネントにトランジションプロップを削除させるアクションを送出します。
各ステップは、親コンポーネントによるPager
コンポーネントの別のレンダリングです。
// 1
<Pager currentPage={page1} />
// 2
<Pager currentPage={page2} transition={transition} />
// 3
<Pager currentPage={page2} />
オプションB
このオプションは、明示的にtransition
とnextPage
の両方に渡します。再び、コンポーネントは、トランジションが完了したときにアクションを送出します。
// 1
<Pager currentPage={page1} />
// 2
<Pager currentPage={page1} nextPage={page2} transition={transition} />
// 3
<Pager currentPage={page2} />
これはどちらが良いか、私が紛失しているアプローチが全く異なるかどうかはわかりません。