我正在使用 react-hot-loader 3.0.0-beta.6 热重载反应组件。重新加载本身效果很好 - 我立即看到更新的组件。不幸的是,在成功重新加载后,在应用程序内调度操作不再触发重新渲染,我需要进行完全手动刷新以使应用程序再次运行。调度的操作会更新 redux 存储,但不会重新渲染组件。
我使用的所有组件都由一个连接的容器和一个无状态组件组成。不呈现更新状态的原因可能是什么?我怎样才能继续调试?
MyComponent/container.js:
const mapStateToProps = state => ({
...
});
const mapDispatchToProps = dispatch =>
bindActionCreators({
...
}, dispatch);
export default connect(mapStateToProps, mapDispatchToProps)(Component);
我的组件/component.jsx:
const Component = ({ testProp1, testProp2 }) => (
<div onClick={testProp2}>
{testProp1}
</div>
);
以下是成功更新:
[WDS] App updated. Recompiling...
[WDS] App hot update...
[HMR] Checking for updates on the server...
[HMR] Updated modules:
[HMR] - ./source/modules/DropDown/index.js
...
[HMR] - ./source/modules/App/index.js
在 main.jsx 中渲染:
const render = () => {
ReactDOM.render(
<AppContainer>
<Provider store={store}>
<MuiThemeProvider>
<App />
</MuiThemeProvider>
</Provider>
</AppContainer>,
eyeTalLayer
);
};
render();
if (module.hot) {
module.hot.accept('./modules/App', render);
}