ReactNativeでデバッグをする
with TypeScriptが前提
メモ: 以下はRNのiOSをシミュレータ上でやる時の話mrsekut.icon
ほかは試していない
debuggerを使う
https://www.youtube.com/watch?v=UE66n7HOIAg
Reduxのデバッグをする
いくつかの選択肢がある
どれも同名の関数を使うし、issueとか見た雰囲気どれでもRNで使えるっぽい(?)ので混乱した
remote-redux-devtools
redux-devtool-extentions
react-native-debugger
react-native-debuggerを使う
導入
$ brew cask install react-native-debugger
code:tsx
// store.tsx このコードは雰囲気なので、このまま書いても動かないかもしれない.
// 新しく何かをimportする必要はない
const composeEnhancers =
typeof window === 'object' &&
(window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({})
: compose;
const store = createStore(
composeEnhancers(
applyMiddleware(...)
)
);
起動
$ open "rndebugger://set-debugger-loc?host=localhost&port=19001"
デスクトップアプリケーションとして「React Native Debugger」が立ち上がる
ここで開いた場合はwindowオブジェクトに__REDUX_DEVTOOLS_EXTENSION_COMPOSE__が存在するため、上のようなコードをstoreに書けばstateの内容を見ることができるようになる
$ npm startなどでシミュレータを起動し、「Remote Debugging」をスタートすると接続する
ブラウザのものが先に立ち上がっている場合は、予めそちらを切っておく必要がある
参考
React Native Debuggerを使ってみる - 個性は次々死んでいく
実機でやる場合
実機で起動しているときにスマホをシェイクするとExpoのメニューが見れる
そこでStart Remote Debuggingを選択するとブラウザ上にいつものやつが表示されて、cmd-iでconsoleが見れるようになる
react-devtoolを使う
install
$ npm install -g react-devtools@^3
show inspectorにしてクリックするとブラウザのときのように場所がわかる
パフォーマンスの計測もできる!!!!!
ただしクソ重い
https://reactnative.dev/docs/0.60/debugging
VSCodeを使ってデバッグする
React Native Toolsを入れる
github
with Expo
vscode-react-native/expo.md at master · microsoft/vscode-react-native
参考
VSCodeでReactNativeをデバッグする | 趣味グラマのブログ