【React Native】文件翻譯閱讀紀錄 - 指南 - 調整測試
Facebook Open Source React Native
調整測試
啟用鍵盤快捷鍵
訪問應用程序內開發人員菜單
重新加載 JavaScript
自動重裝
您甚至可以更進一步,讓您的應用程序繼續運行,因為您可以通過從開發人員菜單啟用熱重新加載,將新版本的文件自動注入JavaScript包。這將允許您通過重新加載來保持應用程序的狀態。
應用內錯誤和警告
錯誤
警告
與RedBox一樣,您可以使用console.warn()來觸發YellowBox。
可以使用console.disableYellowBox = true;在開發期間禁用YellowBoxes。通過設置應忽略的前綴數組,可以以編程方式忽略特定警告:import {YellowBox} from 'react-native';
YellowBox.ignoreWarnings(['Warning: ...']);
Chrome開發者工具
從Chrome菜單中選擇工具→開發人員工具以打開開發人員工具。您也可以使用鍵盤快捷鍵訪問DevTools(在macOS上⌘⌥I,在Windows上按Ctrl Shift I)。您可能還希望啟用Pause On Caught Exceptions以獲得更好的調試體驗。
使用自定義JavaScript調試器進行調試
調試器將接收所有項目根的列表,以空格分隔。例如,如果設置REACT_DEBUGGER =“node /path/to/launchDebugger.js --port 2345 --type ReactNative”,則命令 node /path/to/launchDebugger.js --port 2345 --type ReactNative / path / to / reactNative / app 將用於啟動調試器。
React 開發者工具npm install -g react-devtools
react-devtools
與 React Native Inspector 集成
檢查組件實例
首先,按照Chrome中的調試說明打開Chrome控制台。
確保Chrome控制台左上角的下拉列表顯示debuggerWorker.js。這一步至關重要。
然後在React DevTools中選擇一個React組件。頂部有一個搜索框,可幫助您按名稱查找。一旦您選擇它,它將在Chrome控制台中以 $r 的形式提供,讓您檢查其道具,狀態和實例屬性。
性能監視器
在彈出的應用程序中進行調試
訪問控制台日誌$ react-native log-ios
$ react-native log-android
使用Chrome開發者工具在設備上進行調試
在通過USB連接的Android 5.0+設備上,您可以使用adb命令行工具設置從設備到計算機的端口轉發:adb reverse tcp:8081 tcp:8081
Stetho 進行調試
在Android上使用
debugCompile 'com.facebook.stetho:stetho:1.5.0'
debugCompile 'com.facebook.stetho:stetho-okhttp3:1.5.0'
// android/app/src/release/java/com/{yourAppName}/StethoWrapper.java
public class StethoWrapper {
public static void initialize(Context context) {
// NO_OP
}
public static void addInterceptor() {
// NO_OP
}
}
// android/app/src/debug/java/com/{yourAppName}/StethoWrapper.java
public class StethoWrapper {
public static void initialize(Context context) {
Stetho.initializeWithDefaults(context);
}
public static void addInterceptor() {
OkHttpClient client = OkHttpClientProvider.getOkHttpClient()
.newBuilder()
.addNetworkInterceptor(new StethoInterceptor())
.build();
OkHttpClientProvider.replaceOkHttpClient(client);
}
}
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG) {
StethoWrapper.initialize(this);
StethoWrapper.addInterceptor();
}
SoLoader.init(this, /* native exopackage */ false);
}
react-native run-android
.
調試本機代碼
0 意見