【0.46】React Native 中文更新日志

  • 本文为 Marno 原创,转载必须保留出处!
  • 公众号【 aMarno 】,关注后回复 RN 加入交流群
  • React Native 优秀开源项目大全:http://www.marno.cn

一、通用


重大变化

  • 更好的 TextInput: contentSize 这个属性从 TextInput.onChange event 中移除了

现在 contentSize 的属性已经被彻底移除了,如果有用到该功能的可以使用 onContentSizeChange 代替。

  • 现在如果在 <Image> 标签中嵌套其他组件现在会报黄盒警告

之所以这样做是因为嵌套了其他组件后,会导致 <Image> 组件的尺寸变得不可控,如果非要这样的话,可以考虑使用 <ImageBackground> 组件来代替。而且之前因为这个特性,必须得给 <Image> 设置明确的大小,但是现在它可以根据 bitmap 来自动推断尺寸了。

修复 Bug

  • 修复索引 RAM bundles 的代码生成
  • 修复当存在多个 manifests 文件时 react-native link 命令出现的问题
  • 修复 stickySectionHeader 重新渲染的问题
  • 修复 KeyboardAvoidingView 组件的问题
  • Fix Native Animated - Call x.__makeNative before super.__makeNative
  • 修复 TextInput 的 padding 和 border 尺寸的计算和布局
  • 修复当存在多个 section 时 ListViewMock 唯一 key 的错误

新特性

  • Native Animated: 防止设置了useNativeDriver: true 属性后,该动画被系统优化
// 该特性解决了如下代码会报错的问题
// translateY 是设置了 `useNativeDriver: true` 的动画
 <Animated.View style={{flex: 1, transform: [{ translateY }]}} />
  • 修复当 node<4 时在 react-native-cli 中报错(const -> var)
  • 给 View 添加多个属性(大部分是关于辅助操作的)
  • 在 FlatList 上使用 flexWrap 属性会报警告
  • Add error message when calling sync methods from the Chrome debugger
  • 添加提示消息来提醒开发者在调试时要开启 WIFI
  • 介绍使用 <ImageBackground> 来代替 <Image> 来进行嵌套组件的展示
  • 每次 batch 只调用一次 callImmediates 方法
  • 当需要获取定位信息时自动进行定位权限的请求
  • 暴露 requestAuthorization 方法 (用于请求定位权限)
  • 当 SectionList 中某个 section 里没有数据的时候也进行 section footer 的渲染
  • ART: 如果给 fontWeight 设置了 integer 值,则自动调用 toString 方法对属性进行转换
  • 将 XMLHttpRequest 的 withCredentials 属性的默认值改为 "true"
  • CLI: Adding shebang to setup_env.sh script
  • 强制将 TextInput 中的 alignSelf: stretch 属性删除
  • 单行 <TextInput> 有了固定的高度(占位字符的高度)
  • 统一 <TextInput> 在多行输入和单行输入的布局逻辑
  • VirtualizedList: 在 _updateViewableItems 方法中传入 props.data 代替直接传入 props
  • 更新 inquirer 依赖库版本(0.12.0->3.0.6)以更好的支持交互式命令行提示
  • 允许 module 通过 BatchedBridge 进行懒注册
  • 改进 View 中部分 props 和 style 相关的内容
  • 在 requestIdleCallback 中添加 options 属性,解决在开启 Debug JS Remotely 后某些真机不回调该方法的问题
  • 添加在 JSContext 线程之外的其他线程进行 GC 的能力
  • 在主线程创建 JS executor 和 context

文档 Doc

  • 更新使用文档中的 Getting Started,新增了 CRNA 的使用介绍

CRNA 全名叫 creat-react-native-app,可以帮助我们免搭建 Naitve 开发环境直接进行 RN 应用的开发,具体使用方法可以看我公众号里另一篇文章《更快速的 React Native 应用开发之道 《React Native 高效开发》之 create-react-native-app

  • 文档多处进行改进(主要关于“在设备上运行”“集成到现有 App”部分的文档)
  • 在 Getting Started、Debugging、Running on Device 几个部分的文档进行了一些语序和语法的调整
  • 阐明不同导航库之间的利弊
  • 在 ListView 相关文档中推荐使用 FlatList, SectionList 代替现有的 ListView
  • 修复一些语法 / 语句结构的错误

Yoga

  • 修正 print 边缘值
  • 修复在绝对布局中使用 right 和 bottom 属性时的布局问题
  • 修复在设置了 flexWrap 的容器中使用绝对定位进行布局时的问题
  • Parse YogaValue from string. inverse of toString()
  • Fixing potential measure call with negative size value
  • 改变了 pointScaleFactor 的使用,以避免累积错误
  • 用 ellipsizeMode 代替了 lineBreakMode

Packager

  • 修复 OSS 集成测试Fix integration test for OSS
  • 使用 buildID 来取代文件路径在 reporting 中的标识作用
  • ResolutionRequest: 抽取 FileNameResolver 类
  • Terminal: 移除全局状态
  • AssetServer: 移除 fs 超时
  • 添加 "node" 环境到 packager .eslintrc
  • 为 buck worker 添加预处理机制
  • 添加缺失的依赖库:Add missing dep
  • 添加基础的 top-level 集成测试
  • 添加 CLI 命令 --dev,可以直接在命令行中切换项目的环境
  • ResolutionRequest: factor error handling in resolution
  • 运行 packager.sh 使用 '.' 代替 'source' 来兼容不同操作电脑系统
  • ResolutionRequest: 处理 empty module 时的特殊情况
  • DependencyGraph: 格式化代码
  • ResolutionRequest: use _loadAsFile from _loadAsDir
  • ResolutionRequest: 重构 _loadAsDir 和依赖关系
  • 将 packager 启动脚本从 packager/ 目录移到scripts/目录
  • TransformCache: 在该类外部获取 root path 的选择
  • 将 packager 的核心逻辑代码从 local-cli 移到 packager 目录
  • TransformCaching: API 提供方法可以选择缓存路径
  • 升级 jest-haste-map 版本(19.0.0 --> 20.0.4)
  • Module: 摆脱各种 callbacks
  • 不再在 packager/ folder 内部引用 setupBabel
  • AsyncTaskGroup: @flow
  • Server: 更加一致的错误处理方式
  • 打包时按需分配构建模块
  • 将 sourceMappingURL 从块注释改为行注释
  • 创建 OutputFn 可以构建索引的 RAM bundles
  • 简化文件类型:map 可为空但不是可选的
  • ModuleTransportLike 的协变属性
  • 在 ModuleTransportLike 中只使用 $ReadOnlyArray
  • 在 DependencyGraph-test 中正确的模拟路径
  • 从主入口处删除对 setupBabel 的调用

二、iOS


修复 Bug

  • Native Animations - 修复极小可能出现的动画恢复默认值的问题
  • 修复在 ModuleData 类中 读 / 写 _instance 变量时的数据竞赛

新特性

  • 在 iOS 版本的 UIExplorer 中添加 ART 库,以及相关的示例和测试
  • 在 RCTLinkingManager 中新增推荐方法,代替 Apple 在 iOS9 中已标记为过期的方法
  • 在 iOS 上添加对 flashScrollIndicators 的支持(上拉加载动画)
  • 介绍移动屏幕焦点的 API 的使用(VoiceOver 相关)
  • 支持 Animated.loop
  • 改进 z-index 属性在 iOS 上的实现方式
  • 帮助 VoiceOver 提高对多行本文模式下的 TextInputs 的识别能力
  • 提供获取 iOS 推送消息 category 属性的方法
  • 在 Podfile 中添加关于 DevSupport 的备注
  • 最小化 UIViewOperationQueue 锁定时间
  • 在 XMLHttpRequest 和 Websocket 请求的头文件中添加 cookie
  • 使用更稳定的 drawViewHierarchyInRect 代替 renderInContext
  • 只有设置了 soundName 后才会在本地推送的通知送达时播放声音

如果需要发送静默的本地通知,可以不设置 soundName 属性

  • 忽略 UIWebView 中提示的 "Frame load interrupted" 错误
  • 修复在编译时关于无用变量的警告

三、Android


修复 Bug

  • 修复在 AccessibilityInfoModule 中的内存泄露
  • 修复 Android 中 <TextInput> 组件的属性 onContentSizeChange 很少被回调的问题,基本上只在初始化后调用一次。
  • 修复 ImageLoader Mock 时报错的问题
  • 修复内存泄露问题

当 ReactInstanceManager 调用 destroy 方法时ViewManagersPropertyCache、 ViewManagerPropertyUpdater 中静态变量没有及时释放,会导致内存泄露

  • 修复由可重复加载的 executor 引起的竞争条件
  • 在一般的 border 示例中避免使用 path

新特性

  • 在 UIManager 中添加 viewIsDescendantOf ,检测某个组件是否继承自其他组件
  • 将缺少的 Java 文件添加到 RN fbjni sync
  • 允许 WebView 处理 about:blank
  • 修改 CatalystInstanceImpl.java 中的拼写错误
  • 在 ShakeDetector 和 DevSupportManagerImpl 可以设置触发抖动处理程序的最小抖动次数(默认为 1 )
  • 在 OSS 构建时不包括 JNI dep
  • 给 WebView 添加属性以支持第三方的 cookies
  • 如果当先已经在 UI 线程就不继续向该线程发送 UI 操作
  • 移动 {HashMap,ArrayList} 到 Readable{Map,Array}
  • 移除 ReactImageView.RoundedCornerPostprocessor 中的无用代码
  • 在测量时不要阻止 attaching ReactRootView

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容