调试
开启调试的快捷键
React Native 在 iOS 模拟器上支持一些快捷键操作,具体会在下文中描述。要使用快捷键请务必确保模拟器的 Hardware 菜单中,Keyboard 选项下的"Connect Hardware Keyboard"处于开启状态,否则按键是没有响应的。
访问 App 内的开发菜单
你可以通过摇晃设备或是选择 iOS 模拟器的"Hardware"菜单中的"Shake Gesture"选项来打开开发菜单。另外,如果是在 iOS 模拟器中运行,还可以按下**Command
⌘
+ D
快捷键,Android 模拟器对应的则是Command
**⌘
+ M
(windows 上可能是 F1 或者 F2),或是直接在命令行中运行adb shell input keyevent 82
来发送菜单键命令。
在发布(production)版本中开发者菜单将无法使用。
LogBox
开发版本中的错误和警告会在您的应用程序内部的 LogBox 中显示。
LogBox 在发布版本(release/production)中 是自动禁用的。
控制台的错误与警告提示
控制台错误和警告以红色或黄色徽章的形式显示为屏幕通知,并分别显示控制台中的错误或警告数量。要查看控制台中的错误或警告,点击通知以查看有关日志的完整信息,并在控制台中浏览所有日志。
可以使用LogBox.ignoreAllLogs()
来隐藏这些通知。例如,在进行产品演示时非常有用。此外,还可以通过LogBox.ignoreLogs()
来按照每个日志隐藏通知。当存在无法修复的嘈杂警告(比如第三方依赖项)时,这非常有用。
忽略日志只应作为最后的手段。请记得给自己创建任务或者注释,提醒自己修复任何被忽略的日志。
import {LogBox} from 'react-native';
// Ignore log notification by message:
LogBox.ignoreLogs(['Warning: ...']);
// Ignore all log notifications:
LogBox.ignoreAllLogs();
未捕获的错误
未处理的 JavaScript 错误,例如 undefined is not a function
,将自动打开一个全屏的 LogBox 错误窗口,并显示错误的源代码。这些错误可以被关闭和最小化,以便在出现这些错误时查看应用程序的状态,但是应该始终予以解决。
语法错误
语法错误将自动打开一个全屏的 LogBox 错误,显示出语法错误的源代码。这个错误是无法取消的,因为它代表了必须在继续使用应用程序之前修复的无效 JavaScript 执行。要解除这些错误,请修复语法错误并保存以自动解除(启用快速刷新)或按下 cmd+r 重新加载(禁用快速刷新)。