[0.55] React Native 中文更新日志

译者注:由于个人水平有限,另外翻译changelog需要阅读大量PR,翻译可能有不准确的地方,望谅解。如果发现有翻译不准确的地方,可以留言或是于Github上提交:react-native-docsZh

欢迎来到2018年3月的React Native发布!自二月份以来,超过81名社区开发者提交了247次提交。

新的亮点:

  • React Native现在已经全面改为MIT license (译者注:原来的许可为BSD+Patents license)

  • 已支持 Android TV 设备的开发

  • 使用原生驱动的Animated tracking(动画跟踪) - 示例可查 silky smooth framerate

  • 众多的流程改进

  • Bug修复

通用

增加的新特性

  • 增加对原生驱动的Animated tracking(动画跟踪)的支持,现在你能使用useNativeDriver 标签来跟踪其他 Animated.Values动画。(b48f7e5 by @kmagiera)
  • 新增一个UTFSequence模块用于处理常见的Unicode序列(比如Emoji)(54870e0 and 4761d5a by @sahrens)
  • TextInput 新增了一个 contextMenuHidden 属性(译者注:由于长按TextInput 后会出现在一个编辑菜单,比如复制、粘贴、剪切、全选等选项。新增的contextMenuHidden属性则可以禁止此菜单的出现) (2dd2529 by @amhinson)
  • testOnly_pressed 添加到 TouchableHighlight 以进行快照测试 (3756d41 by @sahrens)

更改: 现有功能的一些变化

修正: 已修复的错误

  • TouchableOpacity 中,当属性为disabled时,透明度控制动画依旧会生效(9366ce4 by @maxkomarychev)
  • 修复了使用 react-native-vector-icons 时遇到的问题(译者注:1.将测试文件夹添加进 .npmignore 文件中,2.将默认黑名单添加到生成设置中,以防止 Metro 处理不正确的引用文件。) (a759a44 and 54dc11a by @jeanlauliac and @t4deu))
  • Jest 添加缺少的模拟 removeEventListener 方法 (59c7b2c by @MoOx)
  • 修正根据纵横比进行主尺寸计算 (f751c34)
  • 修复了Subscribable中由于uglify-es造成的崩溃 (b57a78c by @iMagdy)
  • 更新 node-notifier 依赖以修复内存泄漏问题 (860fcd4 by @rickhanlonii)
  • 修复 pollParams 和 link 的问题 (ca8ce83 by @grabbou)

移除: 被删除的功能

  • 移除各种类型(译者注:1.从StyleSheetTypes中删除未使用的导出 2.将 StyleSheet.create 类型为私有 3.删除内部样式表类型的使用 4.删除样式类型检测StyleProp的使用) (b58e377, ee26d9b, d89517d, 852084a by @TheSavior)
  • 删除在Systrace.js 之中的 Systrace.swizzleJSON() (3e141cb by @yungsters)

Android相关

Android-新特性

  • 新增对于 Android TV 设备的支持 (b7bb2e5 by @krzysztofciombor)
  • TextTextInput 实现了样式属性 letterSpacing(https://github.com/facebook/react-native/commit/5898817) by @motiz88)
  • 现在会显示 Bundle 包的下载进度 d06e143 by @janicduplessis)
  • AndroidInfoModule 现在会返回 Android ID (译者注:在设备首次启动时,系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,这个16进制的字符串就是ANDROID_ID,此数字可能会因root或返厂被改变。另外某些厂商的定制系统的ANDROID_ID会有重复;或者返回值为null) (216c8ec by @L33tcodex0r)

Android-Bug修复

  • 修正行高计算错误 (74e54cb by @strindhaug)
  • 修复0.53版本引入的 TextInput 方法 onKeyPress 造成的崩溃问题 (b60a727 by @joshyhargreaves)
  • 更新ReactAndroid构建脚本以支持 gradle 2.3.0 (d8bb990)
  • 使用 Fetch 方法时,允许在Android上捕获“意外URL”的异常 (da84eba by @jcurtis)
  • 修复 TextInputonLayout 属性 (8a073c1 by @rozele)
  • 修复使用 native navigation 造成的 ViewPager 的bug (译者注:使用wix导航库导航,viewpager会失去定位焦点) (a1295e1 by @ruiaraujo)
  • 修正了在本地化之中导致DevSettingsActivity的崩溃 (427e464 by @ayc1)
  • 修复 touch-responsive views 中缩放造成的崩溃 (67c3ad4 by @tobycox)
  • 修复 “循环原生动画” 中的错误 IllegalStateException (ef9d1fb by @kmagiera)
  • 修复关于安卓JS模块的文件引用Bug (c20e0f9 by @fkgozali)
  • Fix ReadableNativeMap.toHashMap() for nested maps and arrays (8a6ab14 by @esamelson)
  • 修复 Android Sanity Buck 版本检查 (e057322 by @hramos)
  • 通过遵循 whatwg.org 的 XMLHttpRequest send()方法修复与Firestore的连接 (d52569c by @samsafay)
  • 现在可以从 SectionListFlatList 中设置 invertStickyHeaders (3d69b5c by @dannycochran)

Android-移除

  • ReactInstanceManager#registerAdditionalPackages 已被删除; 创建UIManager界面并在uimanager/common中获取常用类 (6b45fb2 by @mdvacca)

iOS相关

iOS-新特性

iOS-更改

  • tvOS 的 onPress 放大动画现在可以通过 tvParallaxProperties 属性对象使用 pressMagnification, pressDurationpressDelay 等方法实现 (6c353fd by @JulienKode)

iOS-Bug修复

  • DevLoadingView 现在支持iPhone X (47b36d3 by @mrtnrst)
    -添加边界检查以防止 ScrollView 滚动超出 ScrollView 边界 (16c9e5b by @siddhantsoni)
  • NetInfoisConnected 方法可正常使用了 (dbafc29 by @alburdette619)
  • AlertIOS 之中, 已修复重复的 var 名称声明 (6893a26)
  • 可使用 react-native run-ios --device [id] 来选择设备运行APP (f8fee0a by @jozan)
  • 当运行命令 run-ios 收到错误 Entry, ":CFBundleIdentifier", Does Not Exist 的BUG被修复 (5447ca6 by @blackneck)
  • 修复了 iOSText measurent 中的问题 (a534672 by @shergin)
  • 修复tvOS在重新加载时引起崩溃的问题 (3a3d884 by @dlowder-salesforce)
    -修正了在 Text 中定位嵌套视图的错误 (7d20de4 by @shergin)
  • 修复 blob 方法返回的结构体序列化后 body 为空的问题 (093a78d by @janicduplessis)
  • 修复 tvOS react-native init 发布版本的bug (译者注:已将正确的依赖关系和链接器标志添加到HelloWorld模板的Xcode项目中) (3002c4e by @dlowder-salesforce
  • Fix RedBox from bridge reload due is not re-registering its root view (2e51fa5 by @fkgozali)

iOS-移除