【0.44】React Native 中文更新日誌

1、導讀


本次更新亮點:npm

  1. 在 IOS 上完全移除了<MapViewIOS />react-native

  2. 對 FlatList 進行優化:好比支持固定頭部等數組

我的感受這期更新基本能夠忽略了!能夠忽略了!能夠忽略了!xcode

2、重大變化


  • 移除對 @provides 的支持緩存

若是你使用了 @provides NameOfModule,那如今必須使 @providesModule 來代替了。sass

  • 當 native 代碼確實調用了 dispatched 時纔回調 batchDidComplete

  • 移除 MapViewIOS(iOS

<MapView /> 組件被聲明爲過時已經有一段時間了,因此在此次 release 版本中直接移除了。

3、新特性


Android平臺

  • PickerAndroid: 在經過 positon 獲取子組件前將子組件先轉換成數組

  • 容許實例化 DeviceInfoModule 時只傳入一個 Context

  • 在文檔中添加關於如何將包含 RN 代碼的安卓模塊部署到 Nexus 或 Maven 倉庫的說明

  • Profiler: 移除舊的對分析器代碼

  • Profiler: 經過 RN 包鏈接器下載文件

  • 當使用 timer 計時超過 1 分鐘時在警告中提示可使用 AlarmManager 來設置更長時間的計時任務。

  • 抽取 PackagerConnectionSettings 類確保能夠更方便的重用 PackagerConnection 模塊

  • 保證 ResourceDrawableIdHelper 是線程安全的

  • 若是沒有須要清理的 frame callback 則不調用 clearFrameCallback() 方法

  • 根據文檔將 PositionError 更新爲對象

  • 經過手動進行字符串和枚舉之間的轉換來優化 ReactShadowNode

  • Set hasNewLayout on children when changing their layout due to display none parent

  • 將 ReactMarker 中的字符串對比換爲使用枚舉類型進行比較

  • 讓 SystraceRequestListener 繼承 BaseRequestListener

iOS平臺

  • Better TextInput: 將 TextInput 和 RCTUITextView 解耦

  • Better TextInput: 改進 RCTUITextView 中 placeholder 的功能

  • Better TextInput: 從 RCTTextView 中移除冗餘的 UIScrollView

  • Better TextInput: 支持自動擴展高度

  • Better TextInput: 固定多行模式下的行間距,爲自動擴展功能作準備

  • 當在 mainBundle 中找不到 assets 時,對 mainBundle 之外進行搜索

  • Native Animated: 添加單元測試

  • Native Animated: 在 iOS 上當移除屬性後將值重設爲默認值

  • 添加 iOS 使用 Linking 打開地理座標的示例代碼

  • 將 RCTLinkingManager 移動到主線程

  • Make Cxx modules lazy on iOS

  • 在 RCTUtils 提供 RCTImageLocalAssetURL 方法

  • RCTRootView is now has empty autoresizing mask by default

  • NavigatorIOS: 移除 NavigationContext

  • 提高 iOS 上滾動時的使用體驗

  • 讓 run-ios --device 示例更容易被複制

  • 將 RCTPlatform.isTesting 和 RCTRunningInTestEnvironment 進行合併

  • 將 xcode 依賴從 0.8.9 更新到 0.9.1,解決了 npm
    安裝時出現 WARN deprecated node-uuid@1.4.7: Use uuid module instead

  • 按照 xcode 的默認格式對 plist 進行縮進

  • 將 bindKeys 移動到 RCTBridge setUp

  • Add missing toggleElementInspector event send when jsLoaded

  • 對 listeners 的數量進行迅速地調整

  • Make the choice of bridge based on an optional delegate method

  • 提供從通知中心移除通知的能力

  • 支持對 scale 設置負數 (transform style property)

iOS / Android 通用

  • Website: 清理代碼, 添加單元測試, 移除對 sass 的依賴

  • 添加了對 View.* static accessibility traits accessors 的棄用警告

  • 移除了官網文檔中對 Navigator 的使用推薦

  • 新增一個類 DeviceInfo 專門提供屏幕尺寸,字體縮放等信息

  • 添加對嵌套了樣式的動畫的支持

  • 添加 React Native 特徵標記來進行 Stack 和 Fiber 之間的切換

  • 在 cli 設置中支持自定義 local server 的日誌記錄工具

  • 刪除未使用的 onNativeException() 方法

  • 當加載模塊異常時在報錯信息中顯示模塊全名,代替以前的模塊 ID

  • 更好的說明關於顯示 systrace

  • 使用 Fiber 時支持字符串類型的返回值

  • 若是模塊 require 失敗,不吞嚥錯誤

  • 不加載 native 模塊做爲 CS bundle 的一部分

  • 使用 fbjs/lib/invariant代替 invariant

  • Packager: GlobalTransformCache: 忽略與 fecthing 相關的錯誤

  • Packager: GlobalTransformCache: reduce asynchronicity for non-cached bundles

  • Packager: 清除緩存

  • Packager: GlobalTransformCache-test: 禁用非肯定性測試

  • Packager: Package.js: 覆蓋錯誤狀況

  • Packager: Module.js: 覆蓋錯誤狀況

  • Packager: TerminalReporter: 中止報告全局緩存的錯誤

  • Packager: ResolutionRequest.js: 將 _resolveNodeDependency() 變爲同步的方式

  • Packager: ResolutionRequest.js: 將 resolveDependency() 變爲同步

  • Packager: TransformCache: 不要每一次都對 transformOptions 進行rehash

  • Packager: TransformCache: 使用 sha1 代替 murmurhash

  • Packager: GlobalTransformCache: 重試經過 keys 進行 fetches

  • Packager: 將 Module 中 read() 方法變爲同步方式

  • 使用 Object.assign 代替 copyProperties

  • 在開發模式下只使用 EventValidator

  • FlatList: 不傳入 getItemLayout 時 scrollToIndex 無效

  • FlatList: 支持固定頭部

  • FlatList: 當數據發生變化時清除對 onEndReached 的回調

不少人也發現了,以前使用 FlatList 時,在滑到底部後會連續回掉 onEndReached,此次應該是修復好了。

  • FlatList: 移除 shouldItemUpdate 方法

  • FlatList: 快速滑動並切換 numColumns 時顯示有用的錯誤信息

  • 使用 checkPropTypes 代替直接調用 PropTypes

  • 將 View 中的 propTypes 移到 ViewPropTypes 中

  • 從 react-native-implementation 中移除 React 插件

  • 改進 debugger 的深色背景模式

  • 修復 Fiber 中 findNodeHandle() 出現的 bug

  • 完全移除 NavigationExperimental

  • 在 React Native 渲染器中提供 ViewPropTypes 對象

  • 容許重寫 NativeModules

  • 將 takeSnapshot 方法從 UIManager 移動到 ReactNative

  • 移除 CustomComponents 文件夾和證書

  • 重構 Chrome 的調試器的 JS 代碼

  • 在 Windows 用戶使用 local-cli 時中止顯示 yarn 的錯誤信息

  • 當棧結構中沒有文件的時,避免出現致命的 YellowBox 錯誤

  • 從新添加"空檢查"來避免 EventPropagators 出現 bug

  • 在 red box 中顯示更多有意義的報錯信息

  • Yoga:在 java 代碼中暴露 UseWebDefaults

  • Yoga:在沒有新的佈局時不將佈局輸出傳輸到 java

  • Yoga:Don't transfer layout outputs to java for unset edges

  • Yoga:修復當子組件超出父組件時使用 align-content: center, flex-end 顯示不正確的問題

  • Yoga:當節點被移除時使佈局無效

  • Yoga:重置的時候將屬性設爲 Web 默認的方式

4、修復 Bug


Android平臺

  • 修復相似華爲P9上出現的 java.lang.RuntimeException: Tried to get non-existent cookie 異常

  • Apply numeric text event bubbling fix

  • CLI: 更新 runAndroid.js 修復 startServerInNewWindow 的問題

  • 在 StackTraceHelper.convertJsStackTrace 中不奔潰

  • 修復當 native 代碼修改一個被 JS 移除的 modal 大小時致使的奔潰

  • 修復在 Nodes 中 FrescoModule 沒有初始化的問題

  • 修復 ReactShadowNode.toString() 方法報 NullPointerException

  • 修復 ClassCastException in ReactModuleSpecProcessor (379b60d)

  • 修改 Fresco 中 width 和 height 的順序

iOS平臺

  • 修復當 RCTPicker 中 item 爲 0 時滑動致使的奔潰問題

  • 修復在 RCTDevSettings 中獲取屬性權限時的警告

  • 修復在 RCTJSCExecutor 上重寫 native 模塊時的奔潰問題

  • 修復使用 native 的 timing 動畫時在 iOS 上發生延時的問題

  • 修復 RCTJSStackFrame::stackFrameWithDictionary 中致使奔潰的問題

  • 修復在 RCTRedBox::formatFrameSource 中的奔潰問題

  • 修復 ReactCxx xcodeproj 工程

  • 修復官方 UIExplore xcodeproj 工程中的各類警告

  • NativeAnimated: Fix missing update at the end of the batch

  • 修復當歸檔時 bridge headers 出現的問題

  • 修復由於設置 scale 爲 0 的 transfrom 動畫時破壞 hitTest 機制的問題

iOS / Android 通用

  • 修改在 navigation 文檔中的拼寫錯誤

  • 將 TextInput 的 'defaultValue' 屬性修改 'string' 類型

  • 修復 YellowBox 佈局使得在其打開的時候不會影響 app 的佈局

  • FlatList: 修復 ItemSeparators 重複的問題

  • FlatList: 修復 minimumViewTime

  • FlatList: 修復在組件從新繪製時觸發 Animated.event 的 attach / detach

  • npm start -- --reset-cache 命令中添加 --

  • 修復在 Linking 中關於 getInitialURL 返回值的誤導

  • FlatList: 修復由於 nodeHandle 引起的奔潰

  • 修復 ReactComponentWithPureRenderMixin 的使用(react-navigation 與0.43 不兼容的問題就在這裏)

  • 修復 "Running on a device" 文檔中的語法錯誤

  • Website: 修復官網中 Showcase 板塊中在 Safari 中圖標不能顯示的問題

  • 修復 PerformanceLogger 清理未完成的事件

  • Animated: 添加缺失的 super 方法調用來修復原生動畫奔潰的問題

  • 修復 ReactNativeEventEmitter 中當 org. 實例消失時不分發事件的問題


相關文章
相關標籤/搜索