当应用程序在应用模拟器中运行时,如何用React Native调试他们的React代码?
当前回答
使用可视化代码工作室调试react原生android和ios应用程序的最佳方法
步骤1。
安装React Native -完整的扩展包
步骤2。
使用USB调试模式连接移动设备或从android工作室打开模拟器。
步骤3。
在可视代码工作室的左侧菜单中单击调试选项 点击添加配置,选择React Native,然后创建launch.json
步骤4。
打开dev选项在手机上的长后按或摇手机和启用调试js远程
第5步。
最后一步点击播放按钮,选择调试android或调试ios
更多信息请参考这个链接
https://medium.com/@tunvirrahmantusher/android-debug-with-vscode-for-react-native-96f54d73462a
其他回答
您可以使用expo进行调试:https://expo.io/
Expo让web开发者能够构建真正的本地应用程序,可以在这两个平台上运行 iOS和Android只需要用JavaScript写一次。它是开放 源代码,免费并使用React Native。
这是一个很棒的工具,你可以在React Europe conf上观看这个研讨会:
https://www.youtube.com/watch?v=HygXkQDMSGU&t=6675s
默认情况下,我的ios模拟器没有捕捉到击键,这就是为什么cmd-D不能工作的原因。我必须使用模拟器的菜单打开键盘设置:
硬件>键盘>连接键盘
现在cmd-D启动chrome调试。
步骤1: 把调试器放在你想要停止脚本的地方,比如:
async saveItem(item, selectedValue) {
debugger
try {
await AsyncStorage.setItem(item, selectedValue);
}
catch (error) {
console.error('AsyncStorage error: ' + error.message);
}
}
这将在控制到达此代码块时暂停调试器。
步骤2: 在ios模拟器上按Cmd+D,在Android模拟器上按Cmd+M。 如果你有真正的设备,摇动设备打开开发菜单,如果你不想摇动设备,请关注这个博客
步骤3: 选择启用远程JS调试,这将打开Chrome
步骤4: 选择开发人员工具。
步骤5: 在源代码中编写调试器的任何地方,调试器都会在Sources选项卡中暂停。进入控制台,输入任何你想调试的参数(出现在代码块中),例如: 要移动到下一个调试器点,再次移动到Sources ->单击恢复脚本执行按钮(右下角蓝色按钮)
把调试器放在你想暂停脚本的任何地方。
享受调试! !
我使用这个库来调试react-native项目
https://github.com/jhen0409/react-native-debugger 它包括
包括React -devtools-core中的React Inspector。 包括回家的 DevTools,用redux-devtools-extension做了相同的API。
或者你可以用
For IOS $ react-native log-ios
For Android $ react-native log-android
如果你正在使用Redux,我强烈推荐React Native Debugger。它包括Chrome开发工具,但也有Redux开发工具和React开发工具。
Redux Devtools:这允许你查看你的操作,并在它们之间来回切换。它还允许您查看redux存储,并具有自动区分每个操作的先前状态和更新状态的功能,因此当您在一系列操作中来回执行时,您可以看到这一点。
React Devtools:这允许你检查某个组件,即它的所有道具以及它的组件状态。如果你有一个组件状态的布尔值,它让你点击它来切换它,看看当它改变时你的应用程序是如何反应的。很棒的特性。
Chrome Devtools允许你看到你所有的控制台输出,使用断点,暂停调试器;等。标准调试功能。如果你右键单击Redux Devtools中列出的操作区域,并选择“允许网络检查”,你可以在Chrome Devtools的网络选项卡中检查你的API调用。
总之,把这些都放在一个地方真是太棒了!如果你不需要其中一个,你可以打开/关闭它。获得React本机调试器并享受生活。
推荐文章
- 如何删除默认的导航栏空间在SwiftUI导航视图
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- 在react native中隐藏/显示组件
- Recyclerview不调用onCreateViewHolder
- 如何在iOS中使用Swift编程segue
- Swift -整数转换为小时/分钟/秒
- Android API 21工具栏填充