React Native框架升級0.60+

前幾天公司React Native項目升級,發(fā)現(xiàn)0.50版本和0.60版本改變還是很大的譬圣,而且很多第三方的庫也已經落后于最新版本比較多了宴倍。所以打算把原來的項目升級一下宇色。我還是按照原來React Native框架探索學習筆記形勢來寫這篇文章,詳細的說說升級過程和新的第三方庫使用施禾。

內容結構

  • 依賴升級
  • JavaScript代碼檢測
    • ESlint在VS Code下的配置
  • 頁面管理
    • 底部導航
    • 頁面導航
    • 切換導航
  • 數(shù)據(jù)管理
    • 全局數(shù)據(jù)管理
    • 網絡請求錯誤管理

依賴升級

我的升級方法比較笨脚线。

  • npx react-native init MyTestApp創(chuàng)建一個新的項目
  • 把里邊的package.json復制到老的項目
  • 去掉Link Binary With Libraries用到的React Native第三方庫
  • yarn
  • pod install

這里邊可能會遇到的問題和注意事項。去掉Link Binary With Libraries用到的React Native第三方庫弥搞。只保留系統(tǒng)的邮绿。

老項目

如果遇到Swift相關報錯。例如Auto-Linking library not found for -lswiftSwiftOnoneSupport類似這樣的錯誤攀例,可以通過創(chuàng)建Swift文件解決船逮。具體可以查看It gives errors when using Swift Static library with Objective-C project

JavaScript代碼檢測

與老版相比肛度,新版的React Native為我們提供了@react-native-community/eslint-config傻唾。所以需要在.eslintrc.js文件中需要修改extends

module.exports = {
  root: true,
  extends: '@react-native-community',
}

導航管理

在上次公司的項目升級中發(fā)現(xiàn)react-navigation已經到了V5, 而且寫法也和之前有了很大的不同承耿。

底部導航

底部導航
const TabBarStack = () => (
  <Tab.Navigator
    tabBarOptions={{
      activeTintColor: '#6699ff',
      inactiveTintColor: '#999',
    }}
    screenOptions={({ route }) => ({
      tabBarIcon: ({ focused }) => tabarIcons[route.name].render(focused),
    })}
  >
    <Tab.Screen name="Home"
      component={HomeStack}
      options={({ route }) => ({
        tabBarLabel: '首頁',
        tabBarVisible: route.state && route.state.index === 0 // ~注意~ 如果想實現(xiàn)隱藏Tabbar的功能需要進行此配置
      })} />
    <Tab.Screen name="Message" component={MessageStack} options={{ tabBarLabel: '信息' }} />
    <Tab.Screen name="Profile" component={ProfilePage} options={{ tabBarLabel: '我的' }} />
  </Tab.Navigator>
)

頁面導航

詳情頁
const HomeStack = () => (
  <Stack.Navigator
    screenOptions={StackNavigatorOptions}
  >
    <Stack.Screen name="Home" component={HomePage} options={{ title: '首頁' }} />
    <Stack.Screen name="HomeDetail" component={HomeDetailPage} options={{ title: '詳情' }} />
  </Stack.Navigator>
)

切換導航

切換導航

這個是和之前的版本不一樣的冠骄,在V5中去掉了createSwitchNavigator。所以實現(xiàn)起來有所不同加袋。

const AppStack = ({ isLaunching }) => (
  <Stack.Navigator
    screenOptions={{
      animationEnabled: false //想去掉Launch到Tabbar側換的動畫需要設置為false
    }}
  >
    {
      isLaunching ?
        <Stack.Screen name="Launch" component={LaunchPage} options={{ headerShown: false, animationEnabled: false }} />
        : <Stack.Screen name="TabBar" component={TabBarStack} options={{ headerShown: false }} />
    }
  </Stack.Navigator>
)

const SwitchStack = ({ isLaunching }) => {
  return (
    <NavigationContainer>
      <AppStack isLaunching={isLaunching} />
    </NavigationContainer>
  )
}

最后

更多詳細的代碼大家可以看源碼DLReactNativeArchitecture凛辣。不知道這個對大家有沒有幫助,本人水平有限职烧。寫文章條理也不是太清晰扁誓,還有些名字寫得也不是特別合適。如果大家對代碼蚀之,對文章有什么問題蝗敢,建議可以在評論留言。大家一起學習足删,一起進步寿谴。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市失受,隨后出現(xiàn)的幾起案子讶泰,更是在濱河造成了極大的恐慌咏瑟,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痪署,死亡現(xiàn)場離奇詭異码泞,居然都是意外死亡,警方通過查閱死者的電腦和手機狼犯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門余寥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辜王,你說我怎么就攤上這事劈狐。” “怎么了呐馆?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵肥缔,是天一觀的道長。 經常有香客問我汹来,道長续膳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任收班,我火速辦了婚禮坟岔,結果婚禮上,老公的妹妹穿的比我還像新娘摔桦。我一直安慰自己社付,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布邻耕。 她就那樣靜靜地躺著鸥咖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兄世。 梳的紋絲不亂的頭發(fā)上啼辣,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音御滩,去河邊找鬼鸥拧。 笑死,一個胖子當著我的面吹牛削解,可吹牛的內容都是我干的富弦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼氛驮,長吁一口氣:“原來是場噩夢啊……” “哼腕柜!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤媳握,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后磷脯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛾找,經...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年赵誓,在試婚紗的時候發(fā)現(xiàn)自己被綠了打毛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡俩功,死狀恐怖幻枉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情诡蜓,我是刑警寧澤熬甫,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站蔓罚,受9級特大地震影響椿肩,放射性物質發(fā)生泄漏。R本人自食惡果不足惜豺谈,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一郑象、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茬末,春花似錦厂榛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吐根,卻和暖如春正歼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拷橘。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工局义, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人冗疮。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓萄唇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親术幔。 傳聞我的和親對象是個殘疾皇子另萤,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345