2016-08-02 36 views
0

Ich kenne die Grundlagen von react und habe einige meiner persönlichen Projekte darauf reagiert. Jetzt beginne ich mit react-native.Native Hot-Reload-Aktualisierungen werden reaktiviert, aber die Änderungen werden nicht aktualisiert.

Also habe ich ein neues Projekt erstellt und den run-android Befehl ausgeführt. Es hat alles erforderliche Verarbeitung und startete den Emulator (ich bin mit Genymotion Android-Emulator),

react-native init AwesomeProject 
cd AwesomeProject 
react-native run-android 

Danach im Emulator I Hot Nachladen aktiviert. Eröffnet das Projekt und änderte den Code ein wenig. Dann in den Emulator, drückte ich r (zweimal), es sagt fetching bundle. Aber ich bekomme das Gleiche. Nichts ist verändert. Die Änderungen werden nicht aktualisiert.

Also schloss ich das Terminal und lief wieder das gleiche Kommando

react-native run-android 

Dann ... es die Veränderungen zeigten. Ich habe keine Ahnung, was hier falsch ist. Ich sah this post und dachte, es könnte helfen. Aber es tat es nicht.

Was mache ich falsch? Ich benutze react-native 0.30.0 und Node v6.3.1. Wenn es hilft, bin ich auf Windows 7 und führe einen Nexus 6P als Genymotion android Emulator.

Antwort

2

Beantworten meiner eigenen Frage. This post hat mir geholfen.

Innerhalb dieser Datei \ node_modules \ reagieren-native \ node_modules \ Knoten Eile \ lib \ Filewatcher \ index.js

  1. Ich hatte MAX_WAIT_TIME (meine ich 120.000 bis 360.000 geändert) zu erhöhen.
  2. hatte auch

Diese

key: '_createWatcher', 
    value: function _createWatcher(rootConfig) { 
     var watcher = new WatcherClass(rootConfig.dir, { 
     glob: rootConfig.globs, 
     dot: false 
     }); 

     return new Promise(function (resolve, reject) { 
     var rejectTimeout = setTimeout(function() { 
      return reject(new Error(timeoutMessage(WatcherClass))); 
     }, MAX_WAIT_TIME); 

     watcher.once('ready', function() { 
      clearTimeout(rejectTimeout); 
      resolve(watcher); 
     }); 
     }); 
    } 

in

key: '_createWatcher', 
    value: function _createWatcher(rootConfig) { 
     var watcher = new WatcherClass(rootConfig.dir, { 
     glob: rootConfig.globs, 
     dot: false 
     }); 

     return new Promise(function (resolve, reject) { 

     const rejectTimeout = setTimeout(function() { 
      reject(new Error([ 
      'Watcher took too long to load', 
      'Try running `watchman version` from your terminal', 
      'https://facebook.github.io/watchman/docs/troubleshooting.html', 
      ].join('\n'))); 
     }, MAX_WAIT_TIME); 

     watcher.once('ready', function() { 
      clearTimeout(rejectTimeout); 
      resolve(watcher); 
     }); 
     }); 
    } 

nun nach diesem ändert, werden alle Änderungen am Code Ich mache zu ändern, ich muss zweimal nicht einmal drücken R , es ändert sich automatisch. Ich hoffe, dass dies einem Noob wie mir helfen kann. Vielen Dank.

0

habe ich 2 Dinge

1) Veränderung MAX_WAIT_TIME Wert auf 360000 2) Sie Strg + M auf dem Android-Emulator und wählen "hot Nachladen Enable"

nun in Code jede Änderung in weniger reflektiert wird als eine Sekunde im Emulator.