Je l'ai essayé sur Windows 10 et Ubuntu 16.04. Dans les deux cas, le rechargement à chaud ne fonctionne qu'avec des modifications dans jsx, mais pas, lorsque je change un variabel ou une fonction ou autre chose en javascript. Le rechargement à chaud est activé. Le rechargement en direct est désactivé. Lorsque j'enregistre une modification dans Visual Studio Code Editor, le périphérique virtuel (studio Android) se recharge, mais les modifications ne sont pas là. La même chose sur le périphérique physique dans l'application EXPO.
D'abord, je n'ai pas installé de gardien. Hot Relaod ne fonctionne pas. Après l'avoir installé, Hot Reload ne fonctionne pas trop.
Je démarre l'application avec create-react-native-app. Il n'est pas éjecté.
package.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"
}
}
version gardien
{
"version": "4.9.1",
"buildinfo": "94e66865386e844f2cffe52e355a94c96562d2e3 2018-03-12T19:58:02.0000000Z"
}
version de nœud v6.13.1
J'ai lu dans certains articles ici, que cela pourrait aider sous Windows, à augmenter le MAX_WAIT_TIME. Mais je n'ai pas de fichier\node_modules\react-native\node_modules\node-haste\lib\FileWatcher\index.js.
Et pourquoi cela ne fonctionne-t-il pas aussi sur Ubuntu?
Ai-je vraiment besoin du gardien? Comment doit-il être configuré? Mon fichier .watchmanconfig est un objet vide comme {}.
Hot Reload fonctionne-t-il généralement avec create-react-native-app?
Est-ce que quelqu'un sait ce que je peux essayer ici, pour faire fonctionner le rechargement à chaud? Merci pour votre aide!
En fait, il y a une différence entre le rechargement à chaud et le rechargement en direct.
Hot Reloading est un rechargement instantané tout en gardant intact l'état de votre application. Cependant, il ne fonctionne qu'à l'intérieur de la méthode render
et n'est déclenché que sur les extensions des classes React.Component et Component
Un péché:
class A extends Component ...
class B extends React.Component ...
Live Reload d'autre part, reconstruit votre application et supprime l'état de votre application. Il comprend tout, des variables et des méthodes à la plus simple des chaînes. C'est pourquoi on partira toujours de l'écran de démarrage de l'application (car l'état est perdu).
J'espère que ça aide!
Suppression du git index.lock
le fichier a fonctionné pour moi
rm -rf .git/index.lock
J'ai effectué les étapes suivantes pour résoudre ce problème:
mkdir Android/app/src/main/assets
bundle react-native --platform Android --dev false --entry-file index.js --bundle-output Android/app/src/main/assets/index.Android.bundle - -assets-dest Android/app/src/main/res
Secouez Android ou cmd + d dans le simulateur, vous obtiendrez un menu.
Une fois activer et désactiver le rechargement à chaud.
effacer quelle que soit l'adresse IP que vous utilisez dans les paramètres de développement -> Débogage -> Hôte et port du serveur de débogage pour le périphérique.
Activez le rechargement à chaud.
Dans le terminal, accédez à votre répertoire de projet -> react-native start
react-native run-Android ou exécutez-le directement dans votre Android studio.
Pour toute personne rencontrant ce problème lors de l'utilisation de WSL 2, les fichiers doivent exister à l'intérieur du sous-système Linux au lieu de l'intérieur des dossiers Windows montés pour que le fichier à regarder fonctionne correctement. Tiré de ce post sur Reddit :
Ils ont changé le protocole de partage de fichiers, passant de leur propre protocole développé sur mesure à l'utilisation du protocole 9P, qui pour l'instant ne prend pas en charge l'événement de modification de fichier.
Je pense que vous pouvez résoudre ce problème en plaçant votre code sur le système de fichiers Linux (ex: dans le répertoire personnel de votre utilisateur) et accéder à ces fichiers via le partage WSL,\wsl $\DISTRO_NAME depuis Windows.
Dans l'Explorateur Windows, si vous allez dans\wsl $, vous devriez voir toutes vos distributions WSL Linux installées et pouvez accéder à tous les fichiers sur leurs systèmes de fichiers.
dans Android allez dans votre recherche MainApplication.Java pour @Override public boolean getUseDeveloperSupport() { return true; }
Assurez-vous qu'il renvoie vrai. Ce pourrait être le problème
Pour moi, le problème était avec le AndroidX
, en gros, vous avez besoin de temps pour migrer vers AndroidX
en raison des anciennes versions réactives natives
ouvrez simplement votre projet dans le Android Studio
Refactor
->Migrate to Android X ...
et suivez les instructions
et n'évitez pas de faire une sauvegarde quand elle sera promue côté sauvegarde