React Native 0.58 正式版发布

30次阅读

共计 2470 个字符,预计需要花费 7 分钟才能阅读完成。

原文地址:https://github.com/react-nati… 本文由简书作者凌宇之蓝翻译, 因本人水平有限,难免翻译有误,还望各位见谅。
[0.58.0]
欢迎阅读 2019 年 1 月发布的 React Native。此版本有许多重大变化,我们特别提请您注意:

核心组件的流程类型的现代化和加强
中断对 ScrollView,CameraRollView 和 SwipeableRow 的更改,使其在某些方法中不再绑定到组件实例
支持 WebKit 中的相互 TLS
从 / assets 之外的目录提供的资产
针对意外行为的大量崩溃修复和解决方案

感谢那些对我们的发布候选人提供反馈的人。如果您有兴趣帮助评估我们的下一个版本,请在此处查看我们的跟踪问题。
新增
添加对 publicPath 的支持以启用来自不同位置的静态资产(0b31496 by @gdborton)
Android

现在可以使用 Android 系统属性设置 Bundler 服务器主机,以便在多个应用程序或应用程序安装中更轻松地进行调试 adb shell setprop metro.host(@stepanhruda 的 e02a154)
Native Modules 现在可以使用额外的属性(userInfo)附加 WritableMap arg 来拒绝承诺。请参阅 Promise.java 中定义的接口以获取可用的方法。这可以在 JavaScript 中以 Error.userInfo 形式访问。这是为了匹配 iOS 现有的 Error.userInfo 行为。有关示例,请参阅 PR。(@Salakar#20940)
Native Modules 现在将 nativeStackAndroid 属性暴露给使用 Exception / Throwable 拒绝的 promise – 使 Javascript 内的本机错误堆栈可用:Error.nativeStackAndroid。这是为了匹配 iOS 现有的 Error.nativeStackIOS 支持。有关示例,请参阅 PR。(@Salakar#20940)

IOS

将 moduleForName:lazilyLoadIfNecessary 添加到 RCTBridge.h 以按名称查找模块并强制加载它们,以及对 @dhahidehpour,@ fkgozali 和 @mmmulani 进行的 LazyLoading 的各种改进
当使用 WebKit = {true} 进行相互 TLS 身份验证时,将 WebView 的功能添加到 setClientAuthenticationCredential(8911353 by @mjhu)

Changed

核心组件的 Flow 类型的主要改进
许多公共组件都转换为 ES6 类
Flow 依赖现在为 v0.86.0
metro 依赖现在是 v0.49.1
jest 依赖现在是 v24.0.0-alpha.6
fbjs-scripts 依赖现在是 v1.0.0(#21880)
folly 的依赖现在是 v2018.10.22.00
React sync for revisions
热重新加载时清理的错误消息
允许 CxxModules 实现需要两次回调的函数

突破性变化
转换为 ES6 类的组件的公共方法不再绑定到其组件实例。对于 ScrollView,受影响的方法是 setNativeProps,getScrollResponder,getScrollableNode,getInnerViewNode,scrollTo,scrollToEnd,scrollWithoutAnimationTo 和 flashScrollIndicators。对于 CameraRollView,受影响的方法是:rendererChanged。对于 SwipeableRow,受影响的方法是:close。因此,通过引用将这些方法作为回调传递给函数已不再安全。组件实例的自动绑定方法是 createReactClass 的一种行为,我们决定在切换到 ES6 类时不保留这种行为。
Android
优化 PlatformConstants.ServerHost,PlatformConstants.isTesting 和 PlatformConstants.androidID 以获得性能
IOS
禁止关于本地模块缺少导出的黄色框
移除
移除 UIManager.measureViewsInRect()
修复 bug

修复 Yoga JNI 绑定中潜在的 UI 线程停顿方案
修复因桥接 cxx 模块注册表周围的竞争条件而发生崩溃的问题
修复视图和文本的 displayName; 显示特定名称而不是通用“组件”
修复 react-native init –help,使其不返回 undefined
修复 react-native –sourceExts
修复当可见道具未定义或为空时意外显示模态
修复 VirtualizedList 分页期间的崩溃
修复使用远程调试和 Delta 捆绑包删除模块可能导致堆栈跟踪不正确的情况

Android 具体修复 bug:

删除根节点时修复崩溃
修复各种 ReactInstanceManager 死锁和竞争条件
解除 ReactModalHostView 和 DialogManager 时修复 IllegalArgumentException
使用 Android Gradle Plugin 3.2 修复不正确的合并资产路径
在 onoutout 回调时修复 HTTP 连接
当远程服务器启动关闭时,修复 websocket 正确关闭
修复 Android 16 设备的兼容性问题
修复了在加载源时不遵守 Image.resizeMode 的问题,从而导致意外填充
修复 Android 28 的倒置 ScrollView,使动量处于正确的方向

IOS 具体修复 bug:

修复内联视图内容未被重新传输的情况
修复使用前置摄像头时 ImagePickerIOS 图像不一致的问题
修复竞争条件并在关闭 iOS 11 及更早版本的 JSC 时崩溃
修复 NetInfo 的_firstTimeReachability 中的崩溃
修复内联视图可见的情况,即使它应该被截断
使用与内容偏移相关的 ScrollView 修复崩溃

我的网站:https://wayne214.github.io

正文完
 0