跳到主要內容

宣布推出 React Native 0.62 版本,搭載 Flipper

·5 分鐘閱讀
Rick Hanlon
Facebook 的 React Native 核心團隊

今天我們發布 React Native 0.62 版本,其中預設包含 Flipper 支援。

此版本在 глобальной пандемии 期間發布。我們今天發布此版本,是為了尊重數百位促成此版本發布的貢獻者,並防止版本發布落後 master 分支太遠。請注意貢獻者協助處理問題的能力可能降低,並準備好在必要時延後升級。

預設搭載 Flipper

Flipper 是用於偵錯行動應用程式的開發人員工具。它在 Android 和 iOS 社群中很受歡迎,在此版本中,我們預設為新的和現有的 React Native 應用程式啟用支援。

Screenshot of Flipper for React Native

Flipper 提供以下開箱即用功能

  • Metro 動作:直接從工具列重新載入應用程式並觸發開發人員選單。
  • 錯誤報告器:檢視來自 Android 和 iOS 裝置的錯誤報告。
  • React DevTools:將最新版本的 React DevTools 與所有其他工具並排使用。
  • 網路檢查器:檢視裝置應用程式發出的所有網路請求。
  • Metro 和裝置記錄:檢視、搜尋和篩選來自 Metro 和裝置的所有記錄。
  • 原生版面配置檢查器:檢視和編輯 React Native 渲染器輸出的原生版面配置。
  • 資料庫和偏好設定檢查器:檢視和編輯裝置資料庫和偏好設定。

此外,由於 Flipper 是可擴充的平台,因此它提供一個市集,可從 NPM 中提取外掛程式,讓您可以發布和安裝特定於您工作流程的自訂外掛程式。在此處查看可用的外掛程式 here

如需更多資訊,請查看 Flipper 文件

全新深色模式功能

我們新增了全新的 Appearance 模組,以提供使用者外觀偏好設定的存取權,例如他們偏好的色彩配置 (淺色或深色)。

const colorScheme = Appearance.getColorScheme();
if (colorScheme === 'dark') {
// Use dark color scheme
}

我們也新增了一個 Hook,用於訂閱使用者偏好設定的狀態更新

import {Text, useColorScheme} from 'react-native';

const MyComponent = () => {
const colorScheme = useColorScheme();
return <Text>useColorScheme(): {colorScheme}</Text>;
};

如需更多資訊,請參閱 AppearanceuseColorScheme 的文件。

將 Apple TV 移至 react-native-tvos

作為我們 精簡核心計畫 的一部分,並為了使 Apple TV 與其他平台 (如 React Native Windows 和 React Native macOS) 保持一致,我們已開始從核心中移除 Apple TV 專用程式碼。

展望未來,React Native 的 Apple TV 支援將在 react-native-community/react-native-tvos 以及對應的 react-native-tvos NPM 套件中維護。這是主要儲存庫的完整分支,僅包含支援 Apple TV 所需的變更。

react-native-tvos 的發布將以 React Native 的公開發布為基礎。對於此 React Native 0.62 版本,請升級 Apple TV 專案以使用 react-native-tvos 0.62。

更多升級支援

在 0.61 發布時,社群推出了一個新的 升級助手 工具,以支援開發人員升級到新版本的 React Native。升級助手提供從您目前版本到目標版本的變更差異,讓您查看特定升級需要進行的變更。

即使有了這個工具,升級時還是會出現問題。今天,我們宣布推出 Upgrade-Support,以提供更專門的升級支援。Upgrade Support 是一個 GitHub 問題追蹤器,使用者可以在其中提交特定於升級專案的問題,以獲得社群的協助。

我們一直致力於改善升級體驗,並且我們希望這些工具能在我們尚未涵蓋的極端情況下,為使用者提供他們需要的支援。

其他改進

  • LogBox:我們新增了全新的 LogBox 錯誤和警告體驗作為選擇加入功能;若要啟用它,請將 require('react-native').unstable_enableLogBox() 新增至您的 index.js 檔案。
  • React DevTools v4:此變更包含升級到最新的 React DevTools,它提供顯著的效能提升、改進的導航體驗,以及對 React Hook 的完整支援。
  • 無障礙功能改進:我們對無障礙功能進行了改進,包括新增 accessibilityValueTouchables 上遺失的屬性、onSlidingComplete 無障礙功能事件,以及將 Switch 組件的預設角色從 "button" 變更為 "switch"

破壞性變更

  • 移除 PropTypes:我們正在從核心組件中移除 propTypes,以減少 React Native 核心對應用程式大小的影響,並傾向於在編譯時而非執行時檢查的靜態類型系統。
  • 移除 accessibilityStates:我們已 移除 已棄用的 accessibilityStates 屬性,改用新的 accessibilityState 屬性,這是一種語意更豐富的方式,讓組件向無障礙服務描述有關其狀態的資訊。
  • TextInput 變更:我們從 TextInput 中移除了 onTextInput from TextInput,因為它不常見、不符合 W3C 標準,且難以在 Fabric 中實作。我們也移除了未記錄的 inputView 屬性和 selectionState

棄用

  • AccessibilityInfo.fetch 已被棄用,但在此版本中,我們 新增了警告
  • 現在必須 設定 useNativeDriver,以支援未來切換預設值。
  • Animated 組件的 ref 現在是內部組件,且 getNode 已棄用

感謝

感謝數百位協助促成 0.62 版本的貢獻者!

若要查看所有更新,請參閱 0.62 更新日誌