2016-08-02 65 views
0

我知道反應的基礎知識,並做了一些關於反應的個人項目。現在我從react-native開始。反應本地熱重新刷新刷新,但不更新更改

所以我創建了一個新項目並運行了run-android命令。它做了所有必要的處理,並推出了仿真器(我使用Genymotion Android模擬器),

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

後,在模擬器我啓用了熱重裝。打開了項目並稍微改變了代碼。然後進入模擬器,我按r(兩次),它說fetching bundle。但我得到同樣的東西。沒有什麼改變。更改不會更新。

所以,我關閉了終端,並再次運行這個相同的命令

react-native run-android 

然後......它顯示了變化。我不知道這裏有什麼問題。我看到this post,並認爲它可能會有所幫助。但事實並非如此。

我在做什麼錯?我正在使用react-native 0.30.0和Node v6.3.1。如果它有幫助我在Windows 7上,並運行一個nexus 6P作爲Genymotion android模擬器。

回答

2

回答我自己的問題。 This post幫了我。

在這個文件中\ node_modules \反應母語\ node_modules \節點匆忙\ LIB \ FileWatcher \ index.js

  1. 我不得不增加MAX_WAIT_TIME(我我從120000改爲360000)。
  2. 也不得不改變

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

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

現在這個更改後,改動任何代碼我做,我甚至不具備按R鍵兩次它會自動更改。我希望這可以幫助像我這樣的菜鳥。謝謝。

0

我做了兩件事情

1)更改MAX_WAIT_TIME值爲360000 2)請按Ctrl + M在Android模擬器,然後選擇「啓用熱重載」

現在,在代碼中的任何改變體現在少比仿真器中的第二。