本文爲 Marno 原創,轉載必須保留出處!java
公衆號 aMarno,關注後回覆 RN 加入交流羣node
簡書專題《 React-Native 開發陣營 》,歡迎關注和投稿react
React Native 優秀開源項目大全:http://www.marno.cnios
本次更新亮點:npm
在 IOS 上完全移除了<MapViewIOS />react-native
對 FlatList 進行優化:好比支持固定頭部等數組
我的感受這期更新基本能夠忽略了!能夠忽略了!能夠忽略了!xcode
移除對 @provides 的支持緩存
若是你使用了 @provides NameOfModule,那如今必須使 @providesModule 來代替了。sass
當 native 代碼確實調用了 dispatched 時纔回調 batchDidComplete
移除 MapViewIOS(iOS)
<MapView /> 組件被聲明爲過時已經有一段時間了,因此在此次 release 版本中直接移除了。
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 默認的方式
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. 實例消失時不分發事件的問題