react-navigation 中無法找到 CardStackStyleInterpolator 的問題及解決方法
阿新 • • 發佈:2018-12-03
由於專案需要,在使用react-native進行app開發時,產品要求ios和android介面的頁面跳轉動畫要統一。由於ios原生方法就是從右向左進行跳轉,回退從左向右跳轉。android原生的跳轉方式與ios的不同,是從底部到頂部漸變渲染跳轉的,回退是從頂部到地圖渲染跳轉。查看了好多相關文章,找到的方式如下:
import CardStackStyleInterpolator from 'react-navigation/src/views/CardStack/CardStackStyleInterpolator'; const Router = StackNavigator({ // 注入各頁面路由 Home: { // 首頁 screen: Home, navigationOptions: { header: null, // 隱藏元件自帶的頂部導航欄 } }, Login: { // 註冊頁 screen: Login, navigationOptions: { header: null, // 隱藏元件自帶的頂部導航欄 } }, }, { initialRouteName:"Home", // 預設顯示頁面 transitionConfig: () => ({ // 修改頁面跳轉動畫方向 screenInterpolator: CardStackStyleInterpolator.forHorizontal, }), });
以為按照文章中的步驟和程式碼,按部就班引入就可以了,但是在啟動專案的時候,頻頻報CardStackStyleInterpolator這個方法集找不到,路徑引用錯誤。然後就在node_modules的react-navigation資料夾中尋找,確實沒有發現相關檔案。在網上再次尋找該問題,可能是搜尋的問題不對,花了2個多小時還是沒有找到解決方案。
最後,在github上,react-navigation的issues中搜索關鍵字,才找到問題的解決方法。這個是問題的地址:https://github.com/react-navigation/react-navigation/issues/3359
注意:在該問題的帖子中,大神們原來都是引用StackViewStyleInterpolator這個方法集來代替CardStackStyleInterpolator的。這個方法集的路徑也需要注意一下。在2.12.1版本之前, 該檔案在react-navigation/src/views/StackView/中,在更高版本中,該檔案已經移到了react-navigation-stack/dist/views/StackView/中。