1. 程式人生 > >react-navigation 中無法找到 CardStackStyleInterpolator 的問題及解決方法

react-navigation 中無法找到 CardStackStyleInterpolator 的問題及解決方法

由於專案需要,在使用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/中。