发布 React Native 0.68
大家好!今天我们宣布 React Native 0.68.0 版本发布,该版本可选启用新的 React Native 架构、包含错误修复等内容。
章节
0.68 的亮点
安德烈·卡拉赞斯 (Andrei Calazans) 帮助我们选择了 0.68 带来的最相关的改动
重大更改和版本升级
此版本带来了一些重大更改
- React Native 已更新到 Node 16,这是最新的 LTS 版本。由于我们在 CI 中测试 LTS 版本和前一个 LTS 版本,因此此更改意味着用户现在需要使用 Node 版本 >= 14。
- Android Gradle 插件已更新到 7.0.1,强制要求 JDK 11 进行 Android 构建,因此请务必升级您的配置(我们建议您同时使用 Intel 和 M1 Mac 的
zulu11JDK 版本) - 已从 iOS 的
RCTBundleURLProviderAPI 中移除fallbackResource。此参数可以安全地从方法调用中移除,无需替换。
工具链也已更新 - 以下是主要的升级
- @react-native-community/cli 至 7.0.3
- Metro 至 0.67
- react-devtools-core 依赖项至 4.23.0
- Flipper 至 0.125.0
- react-native-codegen 至 0.0.9
- Kotlin 至 1.6.10
- Soloader 至 0.10.3
- Gradle 至 7.3
- Android 编译和目标 SDK 至 31
此外,感谢 此提交,由 Nicola Corti 完成,Android Gradle 插件将自行下载 NDK 的默认版本,因此您无需再单独指定和安装它。
其他改进
此版本中有许多其他更改和修复,但这里有一个您可能感兴趣的小选集
- Gijs Weterings 修复了向 RCTModalHostView 转发 testID,以便更容易地对 Modal 进行 E2E 定位。
- Liam Jones 修复了一个问题,该问题是调用
console.error会导致 RedBox 和 LogBox 一起出现。 - Sam Kline 修复了 Android 开发模式下 BundleDownloader 失败后出现的空白屏幕。
- Jeffrey Hyer 修复了一个问题,该问题是 KeyboardAvoidingView 在使用
onLayout属性时无法按预期工作。
如果您有兴趣了解完整的更改列表,可以在 此链接 的更新日志中阅读。
致谢
本次发布包含 68 位贡献者的 614 次提交!感谢大家!
我们还要感谢测试和支持者们,他们帮助我们在稳定版 0.68.0 发布之前捕获了回归问题:你们对本次发布的成功至关重要!
如果您、您的应用或您的公司有兴趣加入“发布测试计划”,可以在 此处报名。
选择加入新架构
如上文简要提及,React Native 0.68 是首个支持 Fabric Renderer 和 TurboModule 系统的版本(可选择加入)。这标志着新 React Native 架构推出的一个关键里程碑。为了帮助您快速了解这些变化,我们在网站上添加了 架构部分,您可以在其中找到关于新系统内部的多个深度指南。
同时,我们在文档中添加了 迁移指南,并启动了一个专门致力于新架构的 工作组。您可以在 上一篇博文 中找到更多信息,包括如何选择加入。
请注意,新架构仍需进行一些调整。您依赖的一些第三方库可能尚未迁移,并且您可能会遇到我们尚未发现的问题。如果您遇到这些问题,请向我们的 新架构工作组 报告。
关于 React 18: React Native 0.68 不支持 React 18 的新渲染引擎,这将在未来的版本中实现。这是因为 React 18 依赖于新架构来利用 React 18 发布博文 中介绍的新功能。有关更多信息,请参阅 React Conf 主题演讲。
网站更新
除了主代码库的改进外,在 Simek、Megatron4537 和 slorber 的帮助下,网站也进行了不少改进!特别是,您现在可以通过顶部工具栏的新部分了解如何为 React Native 做贡献。此外,“贡献”部分和新的“架构”部分现在已不再区分版本——这些部分现在只有一个副本,而不是每个 React Native 版本一个副本。

