react-native 0.57 版本更新日誌

[0.57]

歡迎來到React Native版本的0.57版!這個版本解決了許多問題,並有一些使人興奮的改進。咱們再次跳過了一個月發佈,經過擴展發佈候選階段關注質量,而且兼容以前的版本html

這個版本包括599提交由73個不一樣的貢獻者!爲了響應反饋,咱們準備了一個只包含用戶影響的更改的變動日誌。請分享您的意見,並讓咱們知道咱們如何使這更有用,若是您對此有任何反饋,和往常同樣請告知咱們let us know前端

Highlights

New features

Tooling updates

  • Android構建工具已經升級,須要(SDK 27, gradle 4.4, and support library 27);因爲Android編譯工具暫時不支持3.2,因此請暫時停留在3.1版本
  • 支持 Babel 7 請閱讀 here about using TypeScript and check out the Babel 7 migration guide for help migrating.
  • Metro已經升級(with Babel 7 and better transformer support),並在接下來的主要版本中,咱們計劃有兩個新功能(ram bundles and inline requires)可供你們選擇; 此外,若是您有自定義打包程序配置,咱們建議您還閱讀。here; moreover, if you have a custom packager config, we recommend you read also the "updating to this version" section.
  • Flow,React和相關包也已更新,它包括 working support for the React Profiler.

The Slimmening is happening

正如過去幾回提到的那樣,核心團隊正在審查存儲庫以將其更改成React Native的基本功能,以便使整個生態系統更易於維護(經過使用dividi-et-impera方法,社區將更快地移動並使拉取請求更快地被審查和合並)。此更改須要將一些組件提取到他們本身的單獨存儲庫中並刪除舊的,未使用的代碼(此處的詳細信息)。 (details here).node

任何更改都不會直接影響0.57 ,但咱們但願您知道:react

  • WebView將在react-native-community / react-native-webview它本身的repo上移除。WebView很快就會棄用 react-native-community/react-native-webview
  • NavigatorIOS將從主代碼庫中徹底刪除,從0.58.0開始(經過此提交); 它已被棄用(via this commit); it is now deprecated

Updating to this version

  1. 升級React Native版本到0.57.0, 同時 React 版本到 16.5git

  2. 將babel預設依賴項從"babel-preset-react-native": "^5",更改成"metro-react-native-babel-preset": "^0.45.0",,而後將.babelrc配置更改成github

    {
        "presets": ["module:metro-react-native-babel-preset"]
      }
    複製代碼
  3. 確保您的babel版本時^7.0.0(您可能還須要添加babel-core": "7.0.0-bridge.0"以確保兼容性)web

  4. 若是您有自定義打包程序配置rn-cli.config.js,則可能須要更新它以使用更新的Metro配置結構(有關詳細信息,請參閱Metro的文檔); 如下是一些常見的變化rn-cli.config.js:typescript

    -const blacklist = require('metro/src/blacklist')
    +const blacklist = require('metro-config/src/defaults/blacklist')
    
    // ...
    
    module.exports = {
    + watchFolders: alternateRoots,
    + resolver: {
    + blacklistRE: blacklist
    + },
    + transformer: {
    + babelTransformerPath: require.resolve('./scripts/transformer.js'),
    + },
    - getProjectRoots() {
    - return [
    - path.resolve(__dirname),
    - ].concat(alternateRoots)
    - },
    - getBlacklistRE() {
    - return blacklist;
    - },
    - transformModulePath: require.resolve('./scripts/transformer.js'),
    }
    複製代碼
  5. 運行yarn命令確保安裝全部新依賴項json

Added: new features

Android specific additions

-容許註冊自定義打包程序命令處理程序 (b3ef1c3 by @fkgozali)windows

iOS specific additions

Changes: existing functionality that is now different

Android specific changes

Fixed: bugs that have been resolved

Android specific fixes

  • 修復AsyncStorage在Android 7+上運行不正常的問題 (1b09bd7)
  • 修復終端使用緩慢 (5017b86 by @gnprice)
  • 修復 <TextInput> 佔位符不可見 (8402232 and 86f24cc by @jainkuniya)
  • 在使用RTL內容更改佈局期間修復水平的滾動位置 (de57327)
  • 修復水平問題 (d5465a9)
  • 修復ReactTextInputLocalData在SDK15上的奔潰 (1bb2bea)
  • 修復ReactScrollView的繪圖Rect (6a16bec by @yungsters)
  • 修復了從ReadableNativeMap拋出的NoSuchKeyException,若是密鑰不存在則經過默認爲0來釋放ReadableMap (1a6666a by @Bhavik-P)
  • 修復了runAndroid,以便在Windows8081端口運行包 (3cd0737 by @ihenshaw)
  • 嘗試在不一樣質量的網絡上獲取數據時,不要在上傳重試時崩潰 (7a246e4 by @dryganets)

iOS specific fixes

Removed: features that have been removed; these are breaking

  • [BREAKING] 刪除ScrollView.propTypes; 使用flow或typescript來驗證正確性 (5b6ff01 by @sahrens)

Android specific removals

  • ReactInstancePackage現已棄用; 使用@link ReactPackage或@link LazyReactPackage (b938cd5 by @axe-fb)

關注小編 公衆號:LearningTech 每日更新前端技術

相關文章
相關標籤/搜索