[reactive]reactiontronを使用してデバッグ環境を構成する
4384 ワード
反応帳を使ってアプリケーション開発を行う場合、基本的に使えるChrome開発者ツールも不便を感じなければよくわかりませんが、提供される情報が乏しく、シミュレータでモバイル開発者ツールを使うのも不便なので、デバッグ環境の追加構成が必要です.
今日インストールするReactotronもReactJSで利用できます.
RNでコンソールを使用したり、コードでエラーを指摘したりするなど、さまざまな機能をサポートしているので、デバッグ環境を構成します.
アプリケーションステータス の表示 API要求及び応答表示 快速性能基準 サブスクリプション一部アプリケーションステータス console.logと同様のメッセージ表示機能 ソースマッピングスタックトラッキング( sagaスタックトラッキングを含む)によりグローバルエラートラッキング を実現する. dispatch actions like a government-run mind control experiment Reduxまたはmobx-state-treeホットスワップステータス を使用イベント の追跡 React Native表示画像被覆率 React Nativeから非同期ストレージ を追跡
reactoronアプリケーションをインストールするには、ターミナルに次のコマンドを入力します.
OSはmac、homebrewは3.4.6バージョンで、--caskオプションでGUIアプリケーションをインストールできます.
Reactronが正常にインストールされている場合は、Reactronをプロジェクトにバインドできます.
次のコマンドを実行し、React NativeとReactRonが連携するようにパッケージをインストールします.
Reactotronの公式文書には次のように書かれています.
Reactotronへ
ただし、Androidアプリ構築時に誤って設定が完了していないが、AndroidシミュレータとReactotronで使用されている9090ポートにバインドされていない場合は、接続されていない可能性があります.
このとき、
現在進行中のプロジェクトはstoreとしてredixを使用しています.
Reactotronでは、このReduxストアで発生した操作など、ステータスの変更を確認できます.
そのため、まずプロジェクトにReactronとRedux連動パッケージをインストールします.
このプロジェクトは
今日インストールするReactotronもReactJSで利用できます.
RNでコンソールを使用したり、コードでエラーを指摘したりするなど、さまざまな機能をサポートしているので、デバッグ環境を構成します.
Reactotronが提供する機能
Reactotronのインストール
reactoronアプリケーションをインストールするには、ターミナルに次のコマンドを入力します.
OSはmac、homebrewは3.4.6バージョンで、--caskオプションでGUIアプリケーションをインストールできます.
brew install --cask reactotron
正常にインストールされている場合は、アプリケーションフォルダにReactotronをインストールします.appはすでに生成されているはずです.Reactotronの適用
Reactronが正常にインストールされている場合は、Reactronをプロジェクトにバインドできます.
次のコマンドを実行し、React NativeとReactRonが連携するようにパッケージをインストールします.
npm i --save-dev reactotron-react-native
パッケージがインストールされている場合は、プロジェクト内にReactotronConfig.js
ファイルが作成されます.Reactotronの公式文書には次のように書かれています.
import Reactotron from 'reactotron-react-native';
Reactotron.configure() // AsyncStorage would either come from `react-native` or `@react-native-community/async-storage` depending on where you get it from // controls connection & communication settings
.useReactNative() // add all built-in react native plugins
.connect(); // let's connect!
その後、App.js
またはindex.js
のような根源にReactotronConfig.js
を装着すると、アプリケーションは終了する.import Reactotron from 'reactotron-react-native';
if (__DEV__) {
import('./ReactotronConfig').then(() => Reactotron.log('Reactotron Configured'));
}
以上のコードをすべて適用した後,アプリケーションを構築して実行し,Reactotronも同時に実行する.Reactotronへ
'Reactotron Configured'
このような文が表示されていると、それは正常に連動します.ただし、Androidアプリ構築時に誤って設定が完了していないが、AndroidシミュレータとReactotronで使用されている9090ポートにバインドされていない場合は、接続されていない可能性があります.
このとき、
package.json
によって以下のように記述される."scripts": {
"android": "adb reverse tcp:9090 tcp:9090 && react-native run-android",
...
その後、npm run android
コマンド言語でアンドロイドシステムで構築して実行すると、正常に動作します.ReactotronをReduxにバインドする
現在進行中のプロジェクトはstoreとしてredixを使用しています.
Reactotronでは、このReduxストアで発生した操作など、ステータスの変更を確認できます.
そのため、まずプロジェクトにReactronとRedux連動パッケージをインストールします.
npm i --save-dev reactotron-redux
インストールが完了すると、次のように変更されます.import Reactotron from 'reactotron-react-native';
import { reactotronRedux } from 'reactotron-redux';
const reactotron = Reactotron
.configure() // AsyncStorage would either come from `react-native` or `@react-native-community/async-storage` depending on where you get it from // controls connection & communication settings
.use(reactotronRedux()) // set Redux(추가)
.useReactNative() // add all built-in react native plugins
.connect(); // let's connect!
export default reactotron;
以下に、redoxstoreを生成するReactotronConfig.js
によって記述されたコードを以下に修正する.このプロジェクトは
createStore(...)
にあります.//before
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './modules';
const store = createStore(rootReducer, applyMiddleware(thunk));
export default store;
//after
import { createStore, applyMiddleware, compose } from 'redux'; //compose 추가
import thunk from 'redux-thunk';
import Reactotron from '../../ReactotronConfig'; //added
import rootReducer from './modules';
const store = createStore(rootReducer, compose(applyMiddleware(thunk), Reactotron.createEnhancer())); // create store with reactotron
export default store;
thunkのような追加のミドルウェアをreduxに適用している場合は、./store/index.js
をreduxからインポートし、上記のコードのように複数のミドルウェアを組み合わせて作成するショップに適用できます.Reference
この問題について([reactive]reactiontronを使用してデバッグ環境を構成する), 我々は、より多くの情報をここで見つけました https://velog.io/@jayce_k/React-Native-Reactotron으로-디버깅-환경-구성하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol