调试基础
调试功能,例如 Dev Menu、LogBox 和 React Native DevTools,在发布(生产)构建中已禁用
打开 Dev Menu
React Native 提供了一个应用内开发者菜单,可访问调试功能。你可以通过摇晃设备或使用键盘快捷键访问 Dev Menu:
- iOS 模拟器:Ctrl + Cmd ⌘ + Z(或“设备”>“摇晃”)
- Android 模拟器:Cmd ⌘ + M(macOS)或 Ctrl + M(Windows 和 Linux)
替代方式(Android):adb shell input keyevent 82

打开 DevTools
React Native DevTools 是 React Native 内置的调试器。它可以让你检查并了解 JavaScript 代码的运行方式,类似于 Web 浏览器。
要打开 DevTools,可以:
- 在 Dev Menu 中选择“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([
// Exact message
'Warning: componentWillReceiveProps has been renamed',
// Substring or regex match
/GraphQL error: .*/,
]);
LogBox 会将 React 的某些错误视为警告,这意味着它们不会显示为应用内错误通知。高级用户可以通过使用 LogBoxData.setWarningFilter() 自定义 LogBox 的警告过滤器来更改此行为。
性能监视器
在 Android 和 iOS 上,开发期间可以通过在 Dev Menu 中选择 “Perf Monitor” 来切换应用内性能浮层。请在此了解有关此功能的更多信息。

Performance Monitor 在应用内运行,仅可作为参考。对于准确的性能测量,我们建议研究 Android Studio 和 Xcode 中的原生工具。