当应用程序在应用模拟器中运行时,如何用React Native调试他们的React代码?
当前回答
您可以使用expo进行调试:https://expo.io/
Expo让web开发者能够构建真正的本地应用程序,可以在这两个平台上运行 iOS和Android只需要用JavaScript写一次。它是开放 源代码,免费并使用React Native。
这是一个很棒的工具,你可以在React Europe conf上观看这个研讨会:
https://www.youtube.com/watch?v=HygXkQDMSGU&t=6675s
其他回答
我没有足够的声誉来评论之前的答案,这些答案都很好。:) 以下是我在开发react-native应用程序时调试的一些方法。
Live reloading react-native makes it super easy to see your changes with the ⌘ + R keys or even just enable live reload and watchman will "refresh" the simulator with the latest changes. If you get an error, you can get a clue from the line number from that red screen. A couple of undo will get you back to working state and start again. console.log('yeah, seriously.') I find myself prefer letting the program run and logging some informations than adding a debugger break point. (tough debugger is useful when trying to work with external packages/libraries and it comes with autocompletion, so you know what other methods you can utilise.) Enable Chrome Debugging with debugger; break point in your program.
这取决于您遇到的错误类型以及您对如何调试的偏好。对于大多数未定义的不是一个对象(评估'something.something'),方法1和2对我来说已经足够好了。
然而,处理由其他开发人员编写的外部库或包将需要更多的努力来调试,因此有一个像Chrome Debugging这样的好工具
有时它来自react-native平台本身,所以谷歌一下react-native问题肯定会有帮助。
希望这能帮助到一些人。
非常简单,只有两个命令
For IOS $ react-native log-ios
For Android $ react-native log-android
我使用的一种技术非常类似于Android中的调试策略,即在所有.js文件中包含一个名为TAG的全局变量。
const TAG = 'APP_NAME+SCREEN_NAME';
然后在需要的地方,我将这样做:console.log(TAG + 'ACTION');
通过这种方式,我可以跟踪操作并查看日志语句的来源。
在React-Native中,调试要容易得多。
在IOS中使用调试
CMD + d ctrl + cmd + z(用于模拟器)
在android中调试
用触摸摇动设备(确保你的开发者选项是启用的)
你也可以使用自定义库,如果你不想摇你的真实手机每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>
);
}
}
当你必须在真正的设备上调试并且你有同事坐在你旁边时,它真的很有用。
推荐文章
- BottomSheetDialogFragment的圆角
- 在应用程序启动时出现“无法获得BatchedBridge,请确保您的bundle被正确打包”的错误
- 我如何改变默认对话框按钮的文本颜色在安卓5
- 更改单选按钮的圆圈颜色
- 如何在android中复制一个文件?
- adb找不到我的设备/手机(MacOS X)
- 如何使用Xcode创建。ipa文件?
- 动态改变UILabel的字体大小
- 如何在新的材质主题中改变背面箭头的颜色?
- androidviewpager与底部点
- 相同的导航抽屉在不同的活动
- 如何从视图中获得托管活动?
- 单一的TextView与多种颜色的文本
- 如何在非活动类(LocationManager)中使用getSystemService ?
- 在清单中注册应用程序类?