2016-08-02 64 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模拟器,然后选择“启用热重载”

现在,在代码中的任何改变体现在少比仿真器中的第二。