React Native 0.58 正式版中文更新日志

Stella981
• 阅读 526

原文地址:https://github.com/react-native-community/react-native-releases/blob/master/CHANGELOG.md#0580 本文由简书作者凌宇之蓝翻译,因本人水平有限,难免翻译有误,还望各位见谅。 ##[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

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这