跳至主要内容

宣布 React Native 0.62 发布,包含 Flipper

·阅读时间:5 分钟
Rick Hanlon
Facebook 的 React Native 核心团队

今天,我们发布了 React Native 0.62 版本,该版本默认包含对 Flipper 的支持。

此次发布正值全球疫情期间。我们今天发布此版本是为了尊重数百位贡献者为此次发布所做的工作,并防止发布版本落后于主分支。请注意,贡献者帮助解决问题的能力有所下降,并准备好根据需要延迟升级。

默认集成 Flipper

Flipper 是一款用于调试移动应用的开发者工具。它在 Android 和 iOS 社区中很受欢迎,在此版本中,我们已为新的和现有的 React Native 应用默认启用了对它的支持。

Screenshot of Flipper for React Native

Flipper 提供以下开箱即用的功能

  • **Metro 操作**:从工具栏直接重新加载应用并触发开发者菜单。
  • **崩溃报告器**:查看来自 Android 和 iOS 设备的崩溃报告。
  • **React DevTools**:与所有其他工具一起使用最新版本的 React DevTools。
  • **网络检查器**:查看设备应用发出的所有网络请求。
  • **Metro 和设备日志**:查看、搜索和过滤来自 Metro 和设备的所有日志。
  • **原生布局检查器**:查看和编辑 React Native 渲染器输出的原生布局。
  • **数据库和偏好设置检查器**:查看和编辑设备数据库和偏好设置。

此外,由于 Flipper 是一个可扩展的平台,它提供了一个从 NPM 拉取插件的市场,因此您可以发布和安装特定于您工作流程的自定义插件。请查看此处提供的插件 此处

有关更多信息,请查看 Flipper 文档

新的暗黑模式功能

我们添加了一个新的 Appearance 模块,以提供对用户外观首选项的访问,例如他们首选的配色方案(亮色或暗色)。

const colorScheme = Appearance.getColorScheme();
if (colorScheme === 'dark') {
// Use dark color scheme
}

我们还添加了一个 hook 用于订阅用户首选项的状态更新。

import {Text, useColorScheme} from 'react-native';

const MyComponent = () => {
const colorScheme = useColorScheme();
return <Text>useColorScheme(): {colorScheme}</Text>;
};

有关更多信息,请查看 外观useColorScheme 的文档。

将 Apple TV 迁移到 react-native-tvos

作为我们 精简核心工作 的一部分,以及为了使 Apple TV 与 React Native Windows 和 React Native macOS 等其他平台保持一致,我们已开始从核心代码中删除 Apple TV 特定的代码。

将来,React Native 的 Apple TV 支持将与相应的 react-native-tvos NPM 包一起在 react-native-community/react-native-tvos 中维护。这是主存储库的完整分支,只包含支持 Apple TV 所需的更改。

react-native-tvos 的发布将基于 React Native 的公开发布。对于此 0.62 版本的 react-native,请将 Apple TV 项目升级到使用 react-native-tvos 0.62。

更多升级支持

在发布 0.61 时,社区引入了一个新的 升级助手 工具来支持开发者升级到新版本的 React Native。升级助手提供了您当前版本到目标版本的更改差异,使您可以查看特定升级需要进行的更改。

即使有了此工具,在升级时仍然会出现问题。今天,我们通过宣布 升级支持 来引入更多专门的升级支持。升级支持是一个 GitHub 问题跟踪器,用户可以在其中提交特定于升级项目的 issue 以获得社区的帮助。

我们一直在努力改善升级体验,我们希望这些工具能够为用户提供他们在我们尚未涵盖的极端情况下所需的帮助。

其他改进

  • **LogBox**:我们添加了新的 LogBox 错误和警告体验作为可选功能;要启用它,请将 require('react-native').unstable_enableLogBox() 添加到您的 index.js 文件中。
  • **React DevTools v4**:此更改包括升级到 最新 React DevTools,它提供了显著的性能提升、改进的导航体验以及对 React Hooks 的完全支持。
  • **可访问性改进**:我们改进了可访问性,包括添加 accessibilityValue可触摸元素 上缺少的 props、onSlidingComplete 可访问性事件,以及将 Switch 组件的默认角色从 "button" 更改为 "switch"

重大更改

  • **移除 PropTypes**:我们正在从核心组件中移除 propTypes,以减少 React Native 核心对应用大小的影响,并倾向于在编译时而不是运行时进行检查的静态类型系统。
  • **移除 accessibilityStates**:我们已 移除 已弃用的 accessibilityStates 属性,转而使用新的 accessibilityState 属性,这是一种更具语义意义的方式,组件可以通过它向可访问性服务描述有关其状态的信息。
  • **TextInput 更改**:我们已从 TextInput 中移除 onTextInput 移除,因为它不常见、不符合 W3C 标准,并且难以在 Fabric 中实现。我们还移除了未公开的 inputView 属性和 selectionState

弃用

致谢

感谢数百位贡献者帮助实现了 0.62 版本!

要查看所有更新,请查看0.62 版本更新日志