原文地址: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


似水流年
228 声望19 粉丝

编程开发工作者