当应用程序在应用模拟器中运行时,如何用React Native调试他们的React代码?
当前回答
在React-Native中,调试要容易得多。
在IOS中使用调试
CMD + d ctrl + cmd + z(用于模拟器)
在android中调试
用触摸摇动设备(确保你的开发者选项是启用的)
其他回答
在Debian 8 (Jessie)上调试react-native 0.40.0可以通过在Chromium或Firebug中导航到http://localhost:8081/debugger-ui来完成,而应用程序正在android模拟器中运行。要访问应用程序内的开发人员菜单,在另一个终端窗口运行以下命令,如下所示:
Adb shell输入keyevent 82
如果你在连接到笔记本电脑的真实设备上运行应用程序,你可以使用react-native log-ios或react-native log-android通过终端调试它(它也适用于模拟器)
我使用的一种技术非常类似于Android中的调试策略,即在所有.js文件中包含一个名为TAG的全局变量。
const TAG = 'APP_NAME+SCREEN_NAME';
然后在需要的地方,我将这样做:console.log(TAG + 'ACTION');
通过这种方式,我可以跟踪操作并查看日志语句的来源。
对我来说,在React-Native上调试的最好方法是使用“Reactotron”。
安装Reactotron,然后将这些添加到你的package.json:
"reactotron-apisauce": "^1.1.2",
"reactotron-react-native-under-37": "^1.1.2",
"reactotron-redux": "^1.1.2",
现在,只需要登录您的代码。 例如:console.tron.log(调试)
你也可以使用自定义库,如果你不想摇你的真实手机每2分钟
我创建了一个库,允许你在开发模式下使用3个手指触摸而不是摇晃来打开开发菜单
https://github.com/pie6k/react-native-dev-menu-on-touch
你只需要在里面包装你的应用程序:
从react-native-dev-menu-on-touch导入DevMenuOnTouch; //或:import {DevMenuOnTouch} from 'react-native-dev-menu-on-touch'
class YourRootApp extends Component {
render() {
return (
<DevMenuOnTouch>
<YourApp />
</DevMenuOnTouch>
);
}
}
当你必须在真正的设备上调试并且你有同事坐在你旁边时,它真的很有用。
推荐文章
- 如何删除默认的导航栏空间在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工具栏填充