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

时间:2017-09-02 11:10:56

标签: ios macos react-native

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

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

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

1 个答案:

答案 0 :(得分:6)

react-native中当前版本的hmr仅适用于从React.ComponentComponent [see]延伸的组件。换句话说,它不适用于扩展另一个基类的功能组件或组件。

  • 对于功能组件,您可以使用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"]
              }
            ]
          ]
        }
      }
    }