突破变化和用法
普遍性的更新
新项目现在只有一个入口点(index.js)
概要
之前
当使用react-native init创建新项目时,生成的模板有两个入口点:index.ios.js和index.android.js。这两个文件的内容是相同的
现在
创建新项目时,生成的模板具有单个共享入口:index.js
更新你的代码
当使用
react-native-git-upgrade
或react-native upgrade
升级到此版本时,请注意,这些工具将自动更新您的代码,以使用index.js
而不是以前的index.ios.js
和index.android.js
。 但是,它们不会为您创建一个index.js
文件。 这是必须恢复的react-native-git-upgrade
的副作用。 运行该工具后,您有两个选项:
将
index.ios.js
重命名为index.js
并删除index.android.js
(假定它们是由react-native init
生成的)
恢复由react-native-git-upgrade
完成的更改,以便保留单独的条目文件。 也就是说,升级后,恢复对AppDelegate.m
,MainApplication.java
和build.gradle
所做的更改。
Yoga: 改变长宽比的行为
概要
之前
Aspect ratio would do its best to fit within it's parent constraints.
Aspect ratio would prioritize alignItems: stretch over other sizing properties.
长宽比将尽力适应其父限制
长宽比例会将“alignItems:stretch”优先于其他大小调整属性。
现在
* Aspect ratio is allowed to make a node grow past its parent constraints. This matches many other aspects of flexbox where parent constraints are not treated as hard constraints but rather as suggestions.
* Aspect ratio only takes alignItems: stretch into account if no other size definition is defined. This matches the interaction of other properties with alignItems: stretch.
允许宽高比使节点成长超过其父约束。 这匹配了flexbox的许多其他方面,其中父约束不被视为硬约束,而是作为建议。
如果没有定义其他尺寸定义,长宽比仅考虑“alignItems:stretch”。 这将匹配其他属性与alignItems:stretch.
的交互
更新你的代码
你可能不需要做任何事情,但如果你的产品出现了一些问题,那么应该像将width {'100%',height:'100%',flexShrink:1}添加到声明aspectRatio。
Android
- 将模块名称重命名为模块路径
iOS
- 修复Xcode 8.3中的区分大小写警告
- 向RCTBatchedBridge添加废弃警告
Android
bug修复
- 修复在Android上更新视图z-index
- 修复在Android上跳过的滚动事件
- 修复内容出现日志
- 检索视频的正确内容uri
- 不同的窗口尺寸由方向改变
- Android Oreo(8.0)支持
- 始终将相机距离设置在转换上,如果为0则默认为1280
- 允许
reactinstancemanager
设置初始化功能- 修正了在摄像机滚动中获得正确的视频宽度和高度
- 修正在相机胶卷中获取视频长度
- Make ResourceDrawableIdHelper使用资源ID
- 使用multiline with blurOnSubmit时,强制原始ime选项
新特性和增强功能
- 添加--port选项来运行android,默认为8081
- 添加本地复选框组件
- 为ToastAndroid暴露偏移参数
- Refactor MemoryPressureListener使用Android级别
- 改进getCurrentPosition API
- 从Android请求捆绑包时,不要发送“hot”参数
- 允许将网址列入白名单以绕过默认的Webview加载
- WebView:重新加载时显示加载状态
- 测量基于includeFontPadding属性的Android Text组件的高度
- WebView:只有在顶层页面加载时才能启动onLoadStart
- 支持Android的Flash滚动指示器
- 添加触发第一次内容的perf标记以添加到根视图
- 添加用于重载和下载的perf标记
- 添加更多perf计数器
- 在UIThread上运行onReactContextInitialized()
- 允许通过网络获取文件
- 将ReactApplicationContext暴露给createShadowNodeInstance()
- 使JavaScriptExecutor.Factory成为ReactInstanceManager的可配置属性
- 从反应/视图/工具栏中删除appcompat dep
- 减少催化剂实例gc的可能竞争条件
- 当我们调用flushPendingBatches()时,总是报告perf计数器
- 公开设置自定义基线功能的方法
- 自动下载包
- 从RN deps删除v4支持库
iOS
bug修复
- 修复RCTCxxMethod中使用的格式说明符
- 修复RCTUIManager中使用的格式说明符
- 在RCTSettingsManager init中修复无限递归
- Apple TV:在渲染后由本机控制的RCTTabBar选择
- 修复PushNotificationIOS的流类型错误
- 修复UIContentSizeCategoryDidChangeNotification的注册
- RCTManagedPointer修复
- 修正TextInput数字键盘提交
- 修复dev支持没有ifdef守卫的呼叫
- 在苹果电视上按下菜单按钮时修复模式行为(问题#15313)
- 修复ENABLE_INSPECTOR ifdef在dev中找不到
- 修复 Yoga podspec套管
- 根据图像方向修复Image.getSize()
- 修正fontWeight回归
- 修复无法识别的选择器错误
- 修复崩溃时尝试加载照片库资产与nil图像网址
- 向YellowBox报告本地警告
- 正确处理HEADER_SEARCH_PATHS是单个字符串的情况
- 解决了安装第三方脚本在带有空格的目录中的问题
- fishhook nwlog_legacy_v以避免在websocket重新连接上发生垃圾邮件
- TextInput:修复onSubmitEditing,并禁用blurOnSubmit
- ScrollView:contentOffset验证现在尊重contentInset
- 解决包含空格的路径的问题
新特性和增强功能
- 在RCTReconnectingWebSocket中显示didCloseWithCode
- 重构RCTModuleMethod参数的内存管理
- 在iOS上显示软件包下载进度
- 引入智能RCTUnsafeExecuteOnMainQueueOnceSync()和固定RCTScreenScale()
- 从iOS请求一个捆绑包时,不要发送'hot'参数
- 在PickerIOS中按字体大小调整行高
- 将rootView属性添加到RCTShadowView
- 为NavigatorIOS和TabBarIOS显示barStyle
- 增加RCTTestRunner超时
- 地理位置:允许跳过权限提示
- 在RCTReconnectingWebSocket中显示webSocketDidOpen
- 在RCTSource对象中封装JS源代码
- 允许在iOS上隐藏警报标题
- 在RCTMultipartStreamReader中更改intValue - > integerValue
- 改善RCTCxxBridge无效
- 添加pinchEnabled支持ScrollView
- 添加对Cxx对象的支持作为本机模块的参数
- 为dev重载添加通知
- 在UILocalNotification中设置alertTitle
- 专用于JSCValueEncoder for id而不是NSArray
- 允许本机模块自定义主线程init行为
- 为核心模块配置requireMainQueueSetup
- 限制对SoLoader的调用
- 实现懒惰发现脚手架来根据需要加载NativeModules。
- 在设置图像道具时较少调用reloadImage
普遍性的更新
bug修复
- VirtualizedList:修复陈旧的分隔符道具并公开CellRenderer refs
- 修复TextInput autoGrow
- 修复systrace部分名称
- 在babel -preset- native中修复意外令牌
- Yoga:修复const声明不匹配和双/浮动混合
- 修改样式表注册
- 在添加/重命名资产时修复HMR
- 修复panResponder nativeEvent.locationX和locationY值触摸移动
- 为HMR添加多客户端支持
- 将BlobModule本机模块添加到jest设置
- 使CLI识别CRNA项目
- 使控制台与使用打印的JS引擎一起工作
- 在制作模式中触摸
- onAnimatedValueUpdate也应该包含偏移量
- 避免竞争条件为AppState.currentState
- 不要认为JS整数是动态的Ints
- 当没有设备可用时,返回有意义的错误
新特性和增强功能
- 公开StatusBar高度并修复StatusBar示例
- RN local-cli:修复saveAsset缩放筛选
- 添加JS查询流程范围的统计信息的方式
- JSCExecuter添加锁定
- RN babel预设:添加import()语法
- 将HelloWorld模板移动到单个index.js入口点
- 更新默认的.gitignore以在子文件夹中使用fastlane设置
- 导出Animated.Node以便于类型检查
- 用错误对象拒绝本地cli的承诺
- 带回反向堆栈支持
- WebSocket API更改为其他连接选项腾出空间(SSL钉住)
- 从实例中暴露出ModuleRegistry
- AutoGrow for TextInput
- 使用if(DEV){}更多的代码
- 在重新加载bundle之前强制调试器断开连接
- 允许将正则表达式传递给buildRegExps
- 在React-Native中全局显示“注册devtools plugin”接口
- 在ModulusAnimatedNode中使用偏移调整值
- metro-bundler:将import()转换为basic require()
- make gYGNodeDefaults const
- 消除MethodCall中的错误消息
- 更新systrace标记
- 桥接无效时停止CxxBridge运行循环
- 删除导入桥的限制:cxxreact
- 适当地处理任何无法识别的堆栈帧格式
- 重构如何在本地cli中发现符号链接,支持范围模块
- 验证JS和本机代码版本是否符合RN版本