【0.43】React Native 中文更新日誌

  • 本文爲 Marno 原創,轉載必須保留出處!
  • 公衆號【 aMarno 】,關注後回覆 RN 加入交流羣
  • React Native 優秀開源項目大全:www.marno.cn

1、導讀


本次更新亮點:css

  1. 正式放出了 FlatList
  2. 添加支持 alignContent 屬性
  3. 能夠自定義 init 時候的模板了(具體往下看)

本期最大的亮點可能就是 FlatList 了。還有就是支持將自定義的模板工程上傳到 npm。node

上次更新就添加了在 init 工程時候能夠直接建立帶有經常使用功能的模板工程,當時我說要是能夠自定義模板就行了,這個版本就支持了,之後不用再傻傻的每次 react-native init XXX 了,直接使用 react-native init XXX --template demo 初始化模板工程。如何建立並上傳本身的模板工程能夠往下翻。react

2、重大變化


  • 修改 Dimensions.get('screen').fontScale 的返回值

    在 Android 平臺,下面幾個方法的返回值如今不同了
    1. Dimensions.get('window').fontScale
    2. Dimensions.get('screen').fontScale
    3. PixelRatio.getFontScale()
    若是正在使用這些方法的人必須注意了!這幾個方法以前表明 DisplayMetrics.scaledDensity 的返回值,如今表明 Configuration.fontScale 的返回值android

  • 當 native 肯定調用 dispatched 時候纔會回調 batchDidComplete

    這項修改是由於他影響到了 onBatchComplete ,可是 modules 確實不該該依賴git

3、新特性


Android平臺github

  • 爲 TextInput 的屬性添加 caretHidden (光標隱藏)的實現
  • 更新文檔中的「Getting Started」部分的 Android Studio 版本
  • 在 Android 上使用 selectionColor 屬性時更改光標顏色
  • 控制檯再也不記錄 Webview 組件的日誌
  • Image 組件在加載網絡圖片時能夠支持添加 HTTP 請求頭
  • Docker Testing Environment for Android & JS
  • 爲 Alert 添加消失時的回調方法 onDissmiss
  • 對 android bridge 可見部分擴展了一點
  • Android 的 StatusBar 支持 barStyle
  • 使用 ‘ if ’ 代替 BUCK 文件中最高層的 ‘ elif ’
  • 消除 improt re 在 BUCK 文件中的使用
  • 在 JSPackagerClient 中引入 Responder 和 JSONObject
  • 當佈局發生變化時只調用 onLayout
  • 記錄 ReactContext 計數器
  • Yoga:在 LayoutShadowNode 更高效的解碼動態值

iOS平臺web

  • 再也不執行 link 命令的時候在 plist 中添加劇復的 font 條目
  • 添加了 RCTDevSettings 模塊
  • 推薦安裝最新版的 Xcode
  • 在 React/Views/RCTTabBarItem.h 的頭文件中暴露 'RCTConvert UITabBarSystemItem:'
  • 用下標訪問取代 RCTJavascriptLoader 中的 valueForKey
  • 移動 RCTFollyConvert 到正確的命名空間裏
  • 移除再也不使用的 RCTMessageQueue
  • 使 RCTRefreshControl 再也不依賴屬性設置的順序
  • 簡化 RCTRootViewSizeFlexibility 的代碼
  • 將 RCTShadowViews 中的 cssNode 更名爲 yogaNode
  • 移除 accessibilityLabel 中的前置空格
  • 爲 RCTRootView 提供更好的 UIKit 佈局元素支持
  • 將 RCTRootView 屬性中的 intrinsicSize 改名爲 intrinsicContentSize
  • 暴露 accessibilityViewIsModal 的屬性給任意 view

iOS / Android 通用npm

  • 將 AndroidConstants 和 IOSConstants 合併到 PlatformConstants 中
  • 修復當前 CI 失敗的問題 and allows tree shaking of native dev support code
  • 爲 NavigationExperimental 添加過時警告(終於過時了,確實很差用!)
  • Yoga: 邊距支持設置爲 ‘ auto ’
  • Yoga: 組件添加一個 " display:none " 屬性,使組件在調用 render 方法前不可見
  • Yoga: 重命名 YGUnitPixel 爲 YGPoint...
  • Yoga: 修改 flex 的 get 方法返回實際被 set 的值
  • Yoga: 添加 alignContent 屬性(終於有了!)
  • Yoga: Default root node to size of parent contraints
  • Yoga: flex-wrap屬性能夠支持 wrap-reverse 了
  • Yoga: 移除一些計算 mainSize / crossSize 時的重複代碼
  • Yoga: 經過 parent size 取代 YGNodeCalculateLayout 中的 node size
  • Yoga: 將配置信息移到 YGConfig 中而後在將他們傳入CalculateLayout
  • CLI: 能夠將自定義的工程模板發佈到 npm (上次更新就說要是能夠自定義模板就行了,如今果然就有了)

    詳細介紹:github.com/facebook/re…
    參考模板工程:github.com/mkonicek/re…
    使用模板方法:react-native init MyApp --template demoreact-native

  • 對於忘記使用 AppRegistry 註冊時顯示的報錯信息中添加了一個 hint 幫助用戶定位問題
  • FlatList: 添加對 SectionSeparatorComponent 的支持,就是也能夠對列表進行分區了
  • FlatList: 滾動時支持使用原生動畫
  • FlatList: 重命名組件屬性使之與 SectionList 匹配
  • FlatList: 在文檔中添加關於 PureComponent 的警告
  • FlatList: 簡化滾動交互
  • FlatList: 改進 flow typing
  • FlatList: 傳遞 onScroll
  • FlatList: 支持配置 Viewability
  • FlatList: 能夠經過 minViewTime 和 waitForScroll 設置判斷 items 的可見與否
  • FlatList: 重命名 Viewable 爲 ViewToken
  • FlatList: Missed some viewablePercentThreshold references
  • FlatList: 將組件從 Experimental(實驗性) 包中移到了 CustomComponets/Lists 包中
  • 嘗試從新啓動一些失敗的測試
  • 爲 DevTools 單獨創建了一個倉庫
  • 提供 AppRegistry.getRegistry() 方法讓咱們能夠對已經註冊的組件進行一些操做
  • 重命名 callFunction 爲 jniCallFunction
  • 防止 brisge 重載後出現死鎖
  • 糾正文檔中的錯誤語法和拼寫錯誤
  • 容許爲 native 動畫時間添加監聽器
  • Packager: Introducing async/await, return of the yarn
  • Packager: BatchProcessor: 在 queue() 中使用 Promise
  • Packager: BatchProcessor: 在 processBatch() 中使用 Promise
  • 整理了 Animated 的文檔
  • 解決在 Fiber 準備完成前使用 inspector 出現 redbox
  • 防止丟失 native 模塊
  • 在 CxxBridge 支持 QuickPerformanceLogger.js
  • 使用 const 代替 var 進行 NativeModule 引入的聲明
  • 從 polyfills 中移除 @providesModule 的註釋
  • 刪除特殊的網絡用語
  • 更新 IntegrationWithExistingApps.md 文檔內容
  • 在文檔中添加對 CameraRoll.getPhotos() 的參數和返回值類型的註釋
  • 忽略已卸載組件上的事件監聽器
  • 將 BatchedBridge 模塊的配置移到 InitializeCore 中
  • 修改 SwipeableListView 屬性,不強制傳入 onScroll
  • 使 Touchable 類型組件的文檔保持一致
  • 調整 componentWillMount 和 componentWillUnmount 的順序
  • Packager: Terminal: split status too big to fit in screen
  • Packager: 拋棄 bundle 配置中的 protocol、host 和 port of URLs
  • Packager: 簡化 fs.stat mocks
  • 完成了關於 AccessibilityInfo 的全部實現,以前只有 iOS 有,如今補齊了 Android 並更新了文檔。
  • 修改 ListView 的文檔描述,去掉 ‘ vertically ’ 一詞,由於該單詞有誤導用戶以爲ListView 只支持豎向列表,而實際上並非那樣。
  • 更新 UsingAScrollView.md 文檔內容
  • NavigationExperimental 正式過時,官方在文檔中也推薦使用 React Navigation。具體能夠到我主頁找一下關於 React Navigation 介紹的文章
  • Improve doc generation with flow types
  • 提高了 Picker.Item 的 flow

4、修復 Bug


Android平臺緩存

  • 修復 Android 原生動畫事件觸發延時的問題
  • 修改 DatePickerAndroid.open 文檔的部份內容格式
  • 對 CatalystInstanceImpl 中 BundleHeader 進行默認初始化
  • 修復因爲 複製/粘貼 在開源的 BUCK 文件中引發的問題

iOS平臺

  • YellowBox 只在 Android 上提供 elevation 屬性
  • 修復 badgeColor 在 iOS 10 前期幾個版本顯示異常的問題

iOS / Android 通用

  • 修復動畫博客列表
  • Yoga:修復多行顯示時 align-content 發生拉伸
  • Yoga:修復了 YGUnitAuto 的一些小問題
  • Yoga:修復設置 align-content: strech 時覆蓋 align-item
  • Yoga:修正在 LayoutPropType 中關於 Yoga 的評論
  • Yoga:修復start 和end 時自動邊距的問題
  • Yoga:修復父組件使用 flex 不固定尺寸時子組件屬性使用百分比不能精確測量的問題
  • Yoga:修復使用 align-items 的 wrapping container 中的組件表現爲不拉伸
  • FlatList:修復 getItemLayout 的 flow type 包含 index
  • FlatList:API 更新而且修復 bug
  • FlatList:修復 ItemSeparators 重複的問題
  • FlatList:修復 minimumViewTime
  • 修復嵌套異常的錯誤處理
  • 修復 react-native-git-upgrade 緩存清除
  • Fix the website build
  • 修復在測試失敗時候的行號顯示錯誤問題
  • 修復 ResolutionRequest 的拼寫錯誤
  • 修復Creating Native UI Component docs文檔中重複符號的錯誤
  • 修復 ViewabilityHelper (itemVisiblePercentThreshold 拼錯了) 中的拼寫錯誤
  • Flow:修復 StackFrame 的類型定義
  • Flow:修復大量的 flow annotations
  • Flow:修復 flow 錯誤
  • Flow:修復 flowconfig 在新建項目中的問題
  • 修復 lint 時的出現 1/n 的錯誤
  • 修復 lint 時的出現 2/2 的錯誤
  • 修復在 Windows 上使用絕對路徑的問題
  • Fix the RN OSS gradle build

相關文章
相關標籤/搜索