Reactjs Webpack热模块更换在控制台中列出更新的React组件,但不更新它们

Reactjs Webpack热模块更换在控制台中列出更新的React组件,但不更新它们,reactjs,webpack,webpack-dev-server,Reactjs,Webpack,Webpack Dev Server,在我的About组件中更改一些文本并保存文件后,我可以在控制台中看到以下日志: client.js?6a8d:123 [HMR] bundle rebuilding client.js?6a8d:126 [HMR] bundle rebuilt in 3786ms process-update.js:27 [HMR] Checking for updates on the server... bootstrap 5e8b103…:45 XHR finished loading: GET "htt

在我的About组件中更改一些文本并保存文件后,我可以在控制台中看到以下日志:

client.js?6a8d:123 [HMR] bundle rebuilding
client.js?6a8d:126 [HMR] bundle rebuilt in 3786ms
process-update.js:27 [HMR] Checking for updates on the server...
bootstrap 5e8b103…:45 XHR finished loading: GET "http://localhost:3001/dist/5e8b1032c40f91ebd6ce.hot-update.json".hotDownloadManifest @ bootstrap 5e8b103…:45hotCheck @ bootstrap 5e8b103…:264check @ process-update.js:64module.exports @ process-update.js:28processMessage @ client.js?6a8d:139handleMessage @ client.js?6a8d:65
index.js:81 [React Transform HMR] Patching Marketing
process-update.js:100 [HMR] Updated modules:
process-update.js:102 [HMR]  - ./src/containers/Marketing/About.js
process-update.js:102 [HMR]  - ./src/containers/Marketing/index.js
process-update.js:107 [HMR] App is up to date.
但是,DOM不会更新,获取更新文本的唯一方法是进行完整的浏览器刷新

有没有办法解决这个问题?我相当肯定这是正确的设置在过去,我不知道我做了什么,使它停止工作。我只记得最近在一些地方添加了代码拆分,但是about组件是主构建的一部分

以下是
…-hot update.json
的内容:

{"h":"c6abfe651b7516cb5169","c":[0]}
…-hot update.js
似乎包含已修改组件的代码

以下是我的开发网页包配置:

require('babel-polyfill')
//用于开发的网页包配置
var fs=require('fs')
var path=require('路径')
var webpack=require('webpack')
var assetsPath=path.resolve(_dirname,'../static/dist')
var host=(process.env.host | |'localhost')
变量端口=(+process.env.port+1)| | 3001
//const{commonChunkPlugin}=webpack.optimize
// https://github.com/halt-hammerzeit/webpack-isomorphic-tools
var WebpackIsomorphicToolsPlugin=require('webpack-isomorphic-tools/plugin')
var webpackIsomorphicToolsPlugin=新的webpackIsomorphicToolsPlugin(需要('./webpack同构工具'))
var babelrc=fs.readFileSync('./.babelrc')
var babelrcObject={}
试一试{
babelrcObject=JSON.parse(babelrc)
}捕捉(错误){
console.error('=>错误:分析.babelrc时出错。“)
控制台错误(err)
}
var babelrcObjectDevelopment=babelrcObject.env&&babelrcObject.env.development | |{}
//合并全局和仅开发人员插件
var combinedPlugins=babelrcObject.plugins | | |[]
combinedPlugins=combinedPlugins.concat(babelrcObjectDevelopment.plugins)
var babelLoaderQuery=Object.assign({},babelrcObjectDevelopment,babelrcObject,{plugins:combinedPlugins})
删除babelLoaderQuery.env
//由于我们对客户机和服务器使用.babelrc,并且我们不希望在服务器上启用HMR,因此我们必须添加
//babel插件在这里手动转换hmr。
//确保已启用“反应变换”
babelLoaderQuery.plugins=babelLoaderQuery.plugins | |【】
var=null
对于(var i=0;i__DEVTOOLS_u;:true,//我有完全相同的失败类型:一切“看起来”都像是热重新加载(正确的文件显示在控制台中,编译成功),但DOM根本没有更新。更新需要完全刷新

对我的修正是:不要在单个文件中混合使用无状态和“正常”React组件

单个文件中的多个组件样式使用HMR失败

简言之,保留无状态组件:

导出默认常量MyCom=()=>