React native - reload什么都不做

时间:2016-10-26 23:59:54

标签: android react-native

我刚开始使用React Native。我连接了智能手机,在react-native run-android后我可以看到" Hello World"屏幕上。但是,当我改变" Hello World"到其他东西,保存文件,然后点击我的设备上的重新加载命令(握手后),我看不到任何变化。我需要react-native run-android再次看到新事物。我正在使用Windows 10.此外,构建需要花费大量时间。我读过类似的东西,但没有找到任何合理的解决方案。有人可以帮忙吗?

另外:有时当我点按Reload时,我需要按打包服务器终端输入,重新加载视图,但不会显示更改。

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题并找到了几个解决方案。以下内容对我有用:

使用> 0.29 react-native-versions启用重新加载

  
      
  1. 转到档案:yourProjectFolder//node_modules/react-native/local-cli/server/server.js      
        
    • 推荐第(62)行:process.exit(11) - > //process.exit(11)
    •   
  2.   

关于第2点:我不确定自2.1的解决方案。需要,但我认为〜反应原生v.33。如果有人确切知道,请更正此问题。如果您在2.或2.1处找到index.js,请查看。路径。

  
      
  • 2.1( React-Native FileWatcher index.js 的旧路径)转到文件:yourProjectFolder//node_modules/react-native/node_modules\node-haste\lib\FileWatcher\index.js"

  •   
  • 2.2( React-Native FileWatcher index.js的新路径)转到文件:   yourProjectFolder\node_modules\react-native\packager\react-packager\src\node-haste\FileWatcher\index.js

  •   

2.1 + 2.2的步骤1

    位于Increase文件顶部的
  • index.jsMAX_WAIT_TIME=120000> MAX_WAIT_TIME=360000
  • function (_createWatcher)更改为:

2.1的步骤2(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);
        });
    });
}

2.2的步骤2(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);
        });
    });
}

此解决方案对我有用。希望如果我错了,我可以帮助你并纠正我。