2016-10-26 2 views
4

Ich habe gerade mit React Native begonnen. Ich habe mein Smartphone angeschlossen und nach react-native run-android kann ich "Hallo Welt" auf dem Bildschirm sehen. Aber wenn ich "Hello World" zu etwas anderem ändere, speichere die Datei und tippe dann auf den Reload-Befehl auf meinem Gerät (nachdem ich das Telefon geschüttelt habe), sehe ich keine Änderungen. Ich muss wieder react-native run-android sehen, um neue Dinge zu sehen. Ich arbeite an Windows 10. Build benötigt auch viel Zeit. Ich habe ähnliche Dinge gelesen, aber keine vernünftige Lösung gefunden. Kann jemand helfen?Reagieren nativ - neu laden nichts tun

Auch: Manchmal, wenn ich tippen Reload dann muss ich Enter in Packager Server-Terminal drücken, um Ansicht zu aktualisieren, aber Änderungen nicht angezeigt.

Antwort

2

Ich hatte das gleiche Problem und mehrere Lösungen gefunden. Das Folgende ist für mich arbeiten:

Leben zu ermöglichen, mit den> 0,29 reagieren-native-Versionen Nachladen

  1. geht in Datei: yourProjectFolder//node_modules/react-native/local-cli/server/server.js
    • Commend die Linie (62) : process.exit (11) -> //process.exit(11)

Über Punkt 2: Ich bin mir nicht sicher, seit wann die Lösung von 2.1. wird benötigt, aber ich denke ~ reactive-native v.33. Bitte korrigieren Sie dies, wenn jemand genau weiß. Für Sie nur schauen, wenn Sie die index.js am 2. oder 2.1 finden. Pfad.

  • 2,1 (Ältere Pfad der Reaktivierungsindiafilewatcher index.js) Gehen Sie zu Datei: yourProjectFolder//node_modules/react-native/node_modules\node-haste\lib\FileWatcher\index.js"

  • 2,2 (Neuere Path of React Native Filewatcher index.js) gehen Sie zu Datei: yourProjectFolder\node_modules\react-native\packager\react-packager\src\node-haste\FileWatcher\index.js

Schritt 1 für 2.1 + 2.2:

  • Increase an der Spitze der index.js Datei: MAX_WAIT_TIME=120000>MAX_WAIT_TIME=360000
  • ändern function (_createWatcher) zu:

SCHRITT 2 für 2,1 (Older Pfad von index.js)

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); 
     }); 
    }); 
} 

SCHRITT 2 für 2,2 (Neuere Path of index.js)

_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); 
     }); 
    }); 
} 

Diese Lösung für mich gearbeitet. Ich hoffe, ich könnte dir helfen und mich korrigieren, wenn ich falsch liege.

+0

Vielen Dank für Ihre Antwort. Ich habe getan, was Sie in 2.1 geschrieben haben, aber unglücklicherweise in 'myProjectFolder/node_modules/react-native/local-cli/server/server.js' Ich habe keine Zeile mit' process.exit (1) 'gefunden. Ich benutze 'reactive-native Version 0.35.0' – krzyhub

+0

Am Dienstag bin ich wieder bei der Arbeit und ich kann es mir ansehen. –

+0

Sie sind sehr freundlich. Danke für die Initiative. Ich werde versuchen, dieses Problem bis zu diesem Zeitpunkt selbst zu lösen. Wenn ich eine Lösung finden werde, werde ich es hier teilen. – krzyhub