如何报告错误
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
报告 React Native 的错误是参与项目贡献的最佳方式之一。我们使用 GitHub issues 作为处理新错误报告的主要渠道。
在提交新错误报告前,请先在问题跟踪系统中搜索是否已有相同问题。大多数情况下,这是最快的解决方法,因为其他人可能已经遇到过同样的问题。
如果在问题跟踪系统中找不到你的错误,可以新建一个 issue。创建新 issue 时,请确保:
-
添加问题描述
-
遵循 issue 模板 中的说明
-
注明你使用的 React Native 版本
-
提供
npx @react-native-community/cli info命令的输出结果 -
如适用,请附上问题的截图或录屏
所有错误报告都应包含 复现示例:即能帮助我们理解问题并协助调试的必要代码。
由于接收问题数量庞大,复现示例是强制要求。没有复现示例的问题无法调查,极有可能被关闭。
提供复现示例
复现示例的目的是提供 重现 错误的方法。没有复现示例,我们将无法理解问题,更无法修复它。
复现示例应当 最小化:尽可能减少依赖(理想情况下仅保留 react-native),这有助于我们隔离问题根源。当 GitHub 要求提供复现示例时,他们 并非 索要你的全部源代码。
你需要创建一个 最小化 的项目,专门用于复现你报告的崩溃/错误/问题。
这个过程至关重要,因为创建复现示例本身往往就能解决问题。通过复现示例,能更容易判断问题是由你的特定配置引起,还是 React Native 本身的缺陷。
鉴于 React Native 的访问量,我们只接受以下其中一种复现形式:
-
对于大多数错误:提交 Pull Request 修改 RNTesterPlayground.js 文件来复现错误
-
UI 相关错误:使用 Snack 创建示例
-
构建/升级相关错误:使用我们的 复现代码模板 创建项目
RNTesterPlayground.js
提供复现示例的最佳方式是为 React Native 提交 Pull Request,修改 RNTesterPlayground.js 文件。
这种方式会在 react-native 的 main 分支运行你的代码,是我们 最快 调查修复错误的方法。
RNTesterPlayground.js 文件位于 RN-Tester 应用内,这是我们的参考应用。你可以在其专属 README 文件中了解其工作原理和构建方式。
此类重现器的示例请参见:修复模态布局问题 #50704。
编辑 RNTesterPlayground.js 文件后,您可以在 RNTester 的 Playground 标签页中看到代码运行效果:

Expo Snack
对于大多数与 UI 相关的错误,您可以使用 Expo Snack 来重现。
通过 Expo Snack,您可以直接在浏览器中运行 React Native 代码并实时查看渲染效果。
当您在 Expo Snack 中成功重现问题后,点击 保存 按钮获取可分享的链接,将其附加到问题报告中。
重现器模板
对于大多数与构建/升级相关的错误,您应使用社区重现器模板来重现问题。
该模板创建了一个使用 React Native Community CLI 运行的小型项目,专门用于展示构建问题。
模板已预置 GitHub Actions CI 配置,可帮助识别您可能遇到的构建问题。
使用此模板的步骤:
-
在 GitHub 点击使用此模板按钮创建新项目
-
将新创建的仓库克隆到本地环境
-
应用必要的修改以重现您的问题
-
将您的仓库链接附加到新建的问题报告中