ios - react native 0.47.1 : Hot reload is not reflecting code changes on MacOS

标签 ios macos react-native

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

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

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

最佳答案

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

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

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

关于ios - react native 0.47.1 : Hot reload is not reflecting code changes on MacOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46013170/

相关文章:

ios - 如何从 PFUser 解包 Optionals 链以访问 bool 值

xcode - 使用 wget 或 curl 下载 Xcode

objective-c - 自定义 NSMenu 设计

ios - 捆绑 index.ios.js 时内置卡在 0.0%

javascript - react native KeyboardAvoidingView 无法正确移动

javascript - Firebase + React Native - 获取每个文档 ID

ios - 循环期间无法激活任何其他元素(iPhone应用程序)

ios - iOS应用发行包ID

ios - Storekit 和处理已购买 IAP 的用户

c++ - 二进制文件和操作系统