调试基础
调试功能(例如开发者菜单、LogBox 和 React Native DevTools)在 release(生产)构建中会被禁用。
打开开发者菜单
React Native 提供了一个应用内开发者菜单,可用于访问调试功能。你可以通过摇动设备或使用键盘快捷键打开开发者菜单:
- iOS 模拟器:Ctrl + Cmd ⌘ + Z(或选择 Device > Shake)
- Android 模拟器:Cmd ⌘ + M(macOS)或 Ctrl + M(Windows 和 Linux)
其他方式(Android):adb shell input keyevent 82。

打开 DevTools
React Native DevTools 是 React Native 内置的调试器。它可以帮助你检查并理解 JavaScript 代码的运行方式,类似于网页浏览器中的调试工具。
你可以通过以下任一方式打开 DevTools:
- 在开发者菜单中选择 “Open DevTools”
- 在 CLI 中按下 j

首次启动时,DevTools 会打开欢迎面板,同时展开控制台抽屉,你可以在其中查看日志并与 JavaScript 运行时交互。你还可以通过窗口顶部导航到其他面板,包括集成的 React Components Inspector 和 Profiler。
更多信息请参阅 React Native DevTools 指南。
LogBox
LogBox 是一个应用内工具,会在应用记录警告或错误时显示出来。

致命错误
当发生不可恢复的错误时,例如 JavaScript 语法错误,LogBox 会打开并显示错误位置。在这种状态下,LogBox 无法关闭,因为你的代码无法执行。修复语法错误后,LogBox 会自动关闭——无论是通过 Fast Refresh 还是手动重新加载。
控制台错误和警告
控制台错误和警告会以带有红色或黄色标记的屏幕通知形式显示。
- 错误 会显示通知计数。点击通知可查看展开视图,并分页浏览其他日志。
- 警告 会显示不含详情的通知横幅,提示你打开 React Native DevTools。
当 React Native DevTools 处于打开状态时,除致命错误外,其他所有错误都不会再显示在 LogBox 中。由于 LogBox 的多种选项可能会隐藏某些日志或调整其级别,我们建议以 React Native DevTools 中的 Console 面板作为日志的主要依据。
💡 忽略日志
可以通过 LogBox API 配置 LogBox。
import {LogBox} from 'react-native';
忽略所有日志
可以使用 LogBox.ignoreAllLogs() 禁用 LogBox 通知。这在例如进行产品演示时会很有帮助。
LogBox.ignoreAllLogs();
忽略特定日志
可以通过 LogBox.ignoreLogs() 按日志逐条禁用通知。这对于噪声较大的警告,或者无法修复的警告(例如来自第三方依赖)很有帮助。
LogBox.ignoreLogs([
// 精确匹配消息
'Warning: componentWillReceiveProps has been renamed',
// 子字符串或正则匹配
/GraphQL error: .*/,
]);
LogBox 会将来自 React 的某些错误视为警告,这意味着它们不会显示为应用内错误通知。高级用户可以通过自定义 LogBox 的 warning filter,使用 LogBoxData.setWarningFilter() 来更改此行为。
性能监视器
在 Android 和 iOS 上,开发期间可以通过在开发者菜单中选择 "Perf Monitor" 来切换应用内性能叠加层。有关此功能的更多信息,请参阅这里。

性能监视器运行在应用内,只能作为参考。要获得准确的性能测量结果,我们建议使用 Android Studio 和 Xcode 中的原生工具。