React Native 0.47.1:热重载不反映MacOS上的代码更改

Bil*_*ill 11 macos ios react-native

我正在尝试使用我的React Native项目进行热重新加载.打包器显示消息Bundling index.ios.js ... [hmr enabled],当我进行更改时,我看到Hot reloading...设备上的消息闪烁,因此我确信正在检测到更改.但是,实际屏幕并未反映代码更改.实时重新加载工作正常.

我重新安装了节点模块并重置/卸载/重新安装了守望者.似乎没有任何效果.

我还应该尝试什么?如何找出屏幕未更新的原因?

小智 6

HMR的当前版本react-native只适用于从延长部件React.ComponentComponent[ ].换句话说,它不适用于扩展另一个基类的功能组件或组件.

  • 对于功能组件,您可以使用babel-plugin-functional-hmr.
  • 如果您有自定义基类,则可以在以下内容中覆盖react-transform插件.babelrc:

    {
      "presets": ["react-native"],
      "env": {
        "development": {
          "plugins": [
            ["react-transform",
              {
                "transforms": [{
                  "transform": "react-transform-hmr",
                  "imports": ["react"],
                  "locals": ["module"]
                }],
                "superClasses": ["CustomComponent", "React.Component", "Component"]
              }
            ]
          ]
        }
      }
    }
    

  • 我还注意到,如果您在组件内的“render()”方法之外渲染了代码,它将不会热重载。 (2认同)