express + webpack + react-hot-loader@3.0.0-beta.6热更新问题

代码量有点大,截取部分提问

服务端app.js添加代码如下

if (__DEBUG__) {
    //热更新
    const webpack = require('webpack');
    const webpackConfig = require('./../webpack.config.babel').default;
    const compiler = webpack(webpackConfig);
    app.use(require('webpack-dev-middleware')(compiler, {
        hot: true,
        stats: {
            colors: true
        }
    }));
    app.use(require('webpack-hot-middleware')(compiler));
}

webpack.config.babel.js下的entry

{[
    //资源服务器地址
    'webpack-hot-middleware/client?reload=true',
    'react-hot-loader/patch',
    'webpack/hot/only-dev-server',
    './../index'
]}

webpack.config.babel.js下的plugin包含

new webpack.HotModuleReplacementPlugin()

devtool = '#source-map'

app.jsx

if (module.hot) {
        module.hot.accept('./components/index', () => {
            require('./components/index');
            ReactDOM.render(
                <Index data={initialState}/>,
                document.getElementById('react-html-container')
            );
        });
    }

index.jsx下有lantern.jsx,修改'点击登录'为'点击登录xxx'

<button className="get" onClick={() => this.gotoLogin()}>
    点击登录xxx
</button>

控制台提示正常

clipboard.png

但是页面按钮文案未修改

阅读 2.2k
1 个回答

app.jsx
添加react-hot-loader

import {
    AppContainer
} from 'react-hot-loader';

修改render

ReactDOM.render(
                <AppContainer>
                    <Index data={initialState}/>
                </AppContainer>,
                document.getElementById('react-html-container')
            );
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题