アプリ シミュレーターでアプリを実行しているときに、React Native を使用して React コードをデバッグするにはどうすればよいですか?
48 に答える
React Native アプリのデバッグ
反応アプリの JavaScript コードをデバッグするには、次の手順を実行します。
- iOS シミュレーターでアプリケーションを実行します。
- を押すと、Web ページがhttp://localhost:8081/debugger-ui
Command + D
で開きます。(現時点では Chrome のみ) またはShake Gesture
- デバッグ エクスペリエンスを向上させるために、キャッチされた例外で一時停止を有効にします。
- を押し
Command + Option + I
て Chrome デベロッパー ツールを開くか、View
->Developer
->で開きDeveloper Tools
ます。 - これで、通常どおりにデバッグできるはずです。
オプション
Google ChromeのReact Developer Tools拡張機能をインストールします。React
これにより、開発者ツールが開いているときにタブを選択すると、ビュー階層をナビゲートできます。
ライブリロード
ライブ リロードを有効にするには、次の手順を実行します。
- iOS シミュレーターでアプリケーションを実行します。
- を押し
Control + Command + Z
ます。 Enable/Disable Live Reload
、Reload
およびオプションが表示されEnable/Disable Debugging
ます。
Android アプリの場合、Genymotion を使用している場合は、 を押してメニューを切り替えることができますがCMD + m
、これを実行してメニューで有効にする必要がある場合があります。
- ウィジェットのチェックを外す
- クロムでデバッグを
CMD + m
クリックして有効にします
他の回答に加えて。debugger ステートメントを使用して、react-native をデバッグできます
例:
debugger; //breaks execution
これが機能するには、Chrome 開発ツールが開いている必要があります
このプログラムを試してください: https://github.com/jhen0409/react-native-debugger
対象: windows
、osx
およびlinux
。
react native
以下をサポートします。redux
仮想コンポーネント ツリーを調べて、アプリに反映されているスタイルを変更することもできます。
の代わりにCmd+M、Windows で Android Emulator を押しF10ます。エミュレーターは、すべての反応ネイティブ デバッグ オプションの表示を開始します。
adb logcat *:S ReactNative:V ReactNativeJS:V
Android ログのターミナルでこれを実行します。
React Native 0.62 リリース -公式ソリューションは Flipper
Flipperは、React Native でデバッグ モードを使用しない Android および iOS モバイル デバッグ ツールです。
RN 0.62 以降 (このリンクを参照)、Flipperはデフォルト プロジェクトで初期化されます。
Flipper にはデバッグ用のプラグインがいくつかあります。プラグインにはLayout
、、、Network
Shared preferences
Flipper の最大のメリットはプラグインが多いことではありませんが、Android / iOS デバイスのコンソール デバッグも簡単に確認できます。
フリッパーは、クラッシュやネットワーク拒否についても警告します。
レイアウト プラグインには、アクセシビリティ モードとターゲット モードが含まれます。
アプリケーションで生のネットワーク要求/応答を確認することもできます。
ファイル パスにスペースがあると、+が機能しなくなります。プロジェクトをスペースのない場所に移動したところ、ようやく Chrome デバッガーが動作するようになりました。バグのようです。CmdD
Redux を使用している場合は、React Native Debugger を強くお勧めします。Chrome devtools が含まれていますが、Redux devtools と React devtools も含まれています。
Redux Devtools : これにより、アクションを表示し、それらを前後に移動できます。また、redux ストアを表示することもできます。また、アクションごとに以前の状態と更新された状態を自動的に比較する機能があるため、一連のアクションを行ったり来たりしながらそれを確認できます。
React Devtools : これにより、特定のコンポーネント、つまりすべての props とコンポーネントの状態を検査できます。ブール値であるコンポーネントの状態の一部がある場合は、それをクリックしてトグルし、変化したときにアプリがどのように反応するかを確認できます。優れた機能。
Chrome Devtoolsすべてのコンソール出力を表示したり、ブレークポイントを使用したり、デバッガーで一時停止したりできます。など。標準のデバッグ機能。アクションが Redux Devtools にリストされている領域を右クリックして [ネットワーク検査を許可] を選択すると、Chrome Devtools のネットワーク タブで API 呼び出しを検査できます。
結論として、これらすべてを 1 か所にまとめることは素晴らしいことです。それらのいずれかが必要ない場合は、オン/オフを切り替えることができます。React Native Debugger を入手して、人生を楽しみましょう。
2 つのコマンドだけの非常にシンプルな
For IOS $ react-native log-ios
For Android $ react-native log-android
非常に優れたデバッガ名 Reactotron もあります。 https://github.com/infinitered/reactotron
データ値を表示するためにデバッグ モードにする必要はなく、多くのオプションがあります。
本当に役に立つものを見てください。;)
- ターミナルで実行
adb logcat *:S ReactNative:V ReactNativeJS:V
- Android Studioでプロジェクトを開き、開く
logcat
(下部パネルのボタン) - ターミナルで実行
react-native run-android
ビルド後、Android Studio の詳細ログが表示されlogcat
ます。
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>
);
}
}
実際のデバイスでデバッグする必要があり、同僚が隣に座っている場合に非常に便利です。