首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >响应本机热重加载刷新,但不更新更改。

响应本机热重加载刷新,但不更新更改。
EN

Stack Overflow用户
提问于 2016-08-02 16:54:15
回答 2查看 4.6K关注 0票数 3

我知道反应的基本原理,并且做了一些关于反应的个人项目。现在我从反应本土化开始。

因此,我创建了一个新项目并运行了run-android命令。它完成了所有所需的处理并启动了模拟器(我正在使用Genymotion模拟器),

代码语言:javascript
复制
react-native init AwesomeProject
cd AwesomeProject
react-native run-android

之后,在模拟器中,我启用了热重加载。打开项目并稍微修改代码。然后进入模拟器,我按了r(两次),上面写着fetching bundle。但我得到的是同样的东西。什么都没有改变。未更新更改。

因此,我关闭了终端,并再次运行这个命令。

代码语言:javascript
复制
react-native run-android

然后..。它显示了变化。我不知道这里出了什么问题。我看到了这个职位,认为这可能会有帮助。但事实并非如此。

我做错了什么?我使用的是react本机0.30.0和Node v6.3.1。如果它对我有帮助的话,我就在windows 7上运行一个连接6P作为Genymotion模拟器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-02 18:10:50

回答我自己的问题。这个职位帮了我。

在此文件中,\node_modules\react-native\node_modules\node-haste\lib\FileWatcher\ index.js

  1. 我不得不增加MAX_WAIT_TIME (我的从120000增加到360000)。
  2. 也不得不改变

代码语言:javascript
复制
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);
        });
      });
    }

转到

代码语言:javascript
复制
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两次,它会自动改变。我希望这能帮到像我这样的菜鸟。谢谢。

票数 3
EN

Stack Overflow用户

发布于 2016-09-22 16:49:04

我做了两件事

1)将MAX_WAIT_TIME值更改为360000 2)在Android模拟器上执行Ctrl+M并选择“启用热重加载”

现在,代码中的任何更改都会在模拟器中的不到一秒钟内反映出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38726377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档