2017-07-29 8 views
0

React Nativeで正しくデバッグする方法は?私が今見たことから、与えられたデバッグメッセージは、自分のコードを見る場所を絞り込むのにあまり役に立たない。私は唯一例えばnode_modules に依存関係を言及スタックトレースを取得:上記のエラーでReact Nativeで正しくデバッグする方法は?

(申し訳ありませんが、この記事に画像を表示するのに十分な評判を持っていない)

Android emulator imageを、私はどこかということをunderstsandコンポーネントではないオブジェクトが渡されましたが、どのように追跡するのか分かりません。スタックトレース全体はnode_moduleのファイルのみを参照します。私もChromeデベロッパーツールを使用してみましたが

Chrome Developer Tools image

私も試してみました開発者ツールを反応させ、それがいずれかの有用ではなかったです。

私が書いたコードに実際に役立ち、リンクされているデバッグからの出力を取得するにはどうすればよいですか?

+0

https://stackoverflow.com/questions/29289304/how-do-you-debug-react-native –

+0

一般的にどのようにデバッグするかについての投稿と重複している理由はわかりません。私はそれらをどのように試みたのか説明しました。このポストは、具体的にはノードモジュールではなく私のコードからデバッグを取得することに関するものです。 – gurs1kh

答えて

0

残念ながら、スタックトレースは、この場合はブリッジを通過する必要があるため、必要な情報を取得する方法については一切の情報はありません。

この場合は、コンポーネントの1つに適切なJSXオブジェクトを返すのが間違っている可能性があります。アプリケーションに最近追加したコンポーネント、問題につながったナビゲータルートを構成するコンポーネントなどを覚えている場合は、問題の可能性のあるコンポーネントのセットについて見識を深め、コメントすることでその範囲を狭めることができますでる。そのセットが合理的なサイズになったら、レンダリングメソッドを3回チェックし、何も変わっていないことを確認します。

if(__DEV__) console.log("Your message here")を使用して、自分のアプリが何をしているかを自分自身で分かりやすくする(たとえば、このコンポーネントのレンダリング、共有ストアからのデータの取得など)ために独自のデバッグメッセージを書くことができます。これは、アプリケーションがデバッグ対リリースビルドで実行されているかどうかを確認し、デバッグビルドを実行している場合にのみメッセージを記録します。

Androidの場合はadb logcat、iOSの場合はXCodeコンソールでネイティブのデバッグログを見ることができますが、この場合はうまくいかないでしょう。

ステートメントをすべてのレンダリング方法の冒頭に配置し、コンポーネントが1つずつチェックして、レンダリングを停止してヒットしたことを知るまで問題のあるコンポーネント(Reactはツリー内の同じレベルのコンポーネントの上から順にコンポーネントを再帰的にレンダリングします)。

私は、スタックトレースを見て問題がどこにあるのかをすぐに知ることができないときには不愉快だと知っています。

+0

お返事ありがとうございます。私はこれについて唯一の真の方法は、基本的にすべてのログを持っていることだと思う。私は使用する良いロガーを調べます。 – gurs1kh

関連する問題