Hot neu Laden funktioniert nicht im reagieren-native android
Versuchte ich es auf windows 10 und Ubuntu 16.04. In beiden Fällen ist die Hot-Reload funktioniert nur mit änderungen in jsx, aber nicht, wenn ich eine variabel oder eine Funktion oder etwas anderes in javascript. Die Hot-Reload aktiviert ist. Live-reload deaktiviert ist. Wenn ich eine änderung speichern in der Visual Studio-Code-Editor, der virtuelles Gerät (android studio) geladen, aber die änderungen sind nicht da. Das gleiche auf einem physikalischen Gerät im EXPO-App.
Zuerst wusste ich nicht installieren, Wächter. Hot Reload nicht funktioniert. Nach der Installation von Hot Reload nicht funktioniert.
Ich startet die app mit erstellen-reagieren-native-app. Es ist nicht ausgeworfen.
Paket.json:
{
"name": "NativeReduxSaga",
"version": "0.1.0",
"private": true,
"devDependencies": {
"jest-expo": "25.0.0",
"react-native-debugger-open": "^0.3.17",
"react-native-scripts": "1.11.1",
"react-test-renderer": "16.2.0"
},
"main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
"scripts": {
"start": "react-native-scripts start",
"eject": "react-native-scripts eject",
"android": "react-native-scripts android",
"ios": "react-native-scripts ios",
"test": "node node_modules/jest/bin/jest.js",
"postinstall": "rndebugger-open --expo"
},
"jest": {
"preset": "jest-expo"
},
"dependencies": {
"@redux-offline/redux-offline": "^2.3.2",
"expo": "^25.0.0",
"prop-types": "^15.6.1",
"react": "16.2.0",
"react-native": "0.52.0",
"react-native-autocomplete-input": "^3.5.0",
"react-navigation": "^1.5.2",
"react-redux": "^5.0.7",
"redux": "^3.7.2",
"redux-devtools-extension": "^2.13.2",
"redux-logger": "^3.0.6",
"redux-observable": "^0.18.0",
"redux-promise-middleware": "^5.0.0",
"redux-saga": "^0.16.0",
"redux-thunk": "^2.2.0",
"rxjs": "^5.5.7"
}
}
Wächter version
{
"version": "4.9.1",
"buildinfo": "94e66865386e844f2cffe52e355a94c96562d2e3 2018-03-12T19:58:02.0000000Z"
}
Knoten version
v6.13.1
Ich in einigen Artikeln gelesen hier, dass es helfen könnte, die auf Windows, um die MAX_WAIT_TIME. Ich habe aber nicht ein \node_modules\reagieren-native\node_modules\Knoten-haste\lib\FileWatcher\ index.js Datei.
... Und warum nicht, es funktioniert unter Ubuntu auch?
Brauche ich wirklich die Wächter? Wie sollte es konfiguriert werden? Meine .watchmanconfig Datei ist ein leeres Objekt wie {}.
Ist Hot Reload in der Regel arbeitet mit den create-reagieren-native-app?
Weiß jemand, was ich hier versuchen, um die hot-reload funktioniert?
Vielen Dank für eine Hilfe!!!
- Verwenden Sie die live-Neuladen zu aktualisieren von Variablen
- Ok, vielen Dank! So habe ich zum wechseln zwischen live-oder hot-reload hängt davon ab, Dinge zu verändern, in varibales oder Funktionen oder nur jsx und Stile.
- Ja, die Live nachladen tut beides Dinge, die
- Ok, aber mit live-reload der Staat die ganzen app wieder zu starten, jedes mal, wenn Sie, isnt es? Es merkt sich nicht den Zustand vor den änderungen
- Ja, lädt es alle Staaten erneut
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tatsächlich gibt es einen Unterschied zwischen Heiß-und Live-Nachladen.
Hot Nachladen ist instant-reload, während der Zustand der Anwendung intakt. Jedoch, es funktioniert nur innerhalb der
render
- Methode und wird nur ausgelöst, auf Erweiterungen von Klassen Reagieren.Komponente und KomponenteIn:
Live-Reload auf der anderen Seite, erstellt die Anwendung und verwirft Ihre, den Zustand der Anwendung. Es umfasst alles, von Variablen und Methoden, um die einfachste string. Deshalb wird immer ein start aus dem start-Bildschirm der Anwendung (weil der Staat verloren ist).
Hoffe, es hilft!
Löschen der git
index.lock
- Datei hat bei mirrm -rf .git/index.lock
Ich habe die folgenden Schritte aus, um dieses Problem zu beheben:
mkdir android/app/src/main/assets
reagieren-native bundle --Plattform android --dev-falsche-Eingabe-Datei index.js --bundle-Ausgabe android/app/src/main/assets/Indexes.android.bundle --Vermögen-dest android/app/src/main/res
Schütteln android-Gerät oder cmd + d im simulator erhalten Sie ein Menü.
Einmal aktivieren und deaktivieren von Hot-reload.
klar, was die IP-Adresse, die Sie verwenden in den Dev-Einstellungen -> Debugging -> Debug-server-host & port für das Gerät.
Aktivieren Heiß nachladen.
Im terminal gehen Sie zu Ihrem Projekt-Verzeichnis -> reagieren-native start
reagieren-native run-android oder führen Sie Sie direkt in Ihrem android-studio.
in android gehen Sie zu Ihrem MainApplication.Java
suchen
@Override
public boolean getUseDeveloperSupport() {
return true;
}
Stellen Sie sicher, es gibt true zurück. Es könnte das Problem sein
Für mich war das problem mit der
AndroidX
im Grunde einige Zeit, die Sie brauchen, um die Migration zuAndroidX
aufgrund der Reaktion-native alten Versionennur öffnen Sie Ihr Projekt in die
Android Studio
und nicht vermeiden zu sichern, wenn Sie gefördert werden, für speichern Seite
Stellen Sie sicher, dass Sie nicht über einen index.lock-Datei in Ihrem .git-Verzeichnis 🙂 Löschen, könnte es lösen Ihr Problem.