我正在尝试对我的 React Native 项目进行热重载。打包程序显示消息 Bundling index.ios.js ... [hmr enabled]
并且当我进行更改时,我看到 Hot reloading...
消息闪烁设备,因此我确信正在检测到更改。但是,实际屏幕并未反射(reflect)代码更改。实时重新加载工作正常。
我已经重新安装了节点模块并重置/卸载/重新安装了 watchman。似乎没有任何效果。
我还应该尝试什么?我如何找出屏幕未更新的原因?
最佳答案
react-native
中 hmr 的当前版本仅适用于从 React.Component
或 Component
扩展的组件 [ 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/