我有一個顯示多頁內容的React組件。單擊應用程序中其他位置的按鈕應改變此組件顯示的內容,並進行給定的轉換。這個過渡是一個自定義的Javascript過渡,而不是一個CSS過渡,所以我不能使用ReactCSSTransitionGroup。如何在React中實現過渡動畫?
有兩種方法我可以想到。兩者都涉及傳遞transition
作爲道具,但不同之處在於下一頁如何傳入組件。
選項A
此選項使用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} />
我不確定其中哪一個更好,或者如果有一個完全不同的方法,我錯過了。