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 Plugin 已更新至 7.0.1,强制 Android 构建使用 JDK 11,因此请确保升级您的配置(我们建议您对 Intel 和 M1 Mac 都使用
zulu11
JDK 版本) - 从 iOS 上的
RCTBundleURLProvider
API 中删除了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 Plugin 将自行下载 NDK 的默认版本,因此您不再需要单独指定和安装它。
其他改进
此版本中还有许多其他更改和修复,但以下是一些您可能感兴趣的小部分
- Gijs Weterings 修复了将 testID 转发到 RCTModalHostView 以便更轻松地进行模态的 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 18 的新渲染引擎不受 React Native 0.68 支持,这将在未来的版本中实现。这是因为 React 18 依赖于新架构才能从 React 18 发布公告博文 中提出的新功能中获益。有关更多信息,请参阅 此处的 React Conf 主题演讲。
网站更新
除了对主代码库的改进外,在 Simek、Megatron4537 和 slorber 的帮助下,网站上也有一些改进!特别是,您现在可以通过顶部工具栏中的新部分了解如何为 React Native 贡献代码。此外,“贡献”部分和新的“架构”部分现在已取消版本化 - 现在只有一个副本,而不是每个 React Native 版本都有一个。