Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正确响应热加载程序检查,但不更新_Javascript_Reactjs_Webpack_React Hot Loader - Fatal编程技术网

Javascript 正确响应热加载程序检查,但不更新

Javascript 正确响应热加载程序检查,但不更新,javascript,reactjs,webpack,react-hot-loader,Javascript,Reactjs,Webpack,React Hot Loader,最低回购 我正在尝试一个react+electron+webpack2演示项目。目前我被困在react-hot-loader3。如下所示,热更新检查似乎工作正常,但没有按预期更新(我对组件所做的更改未更新)。这和电子或其他东西有关吗?我以前从未使用过react hot loader webpack.config.js index.jsx 从“React”导入React; 从“react dom”导入react dom; 从“react hot loader”导入{AppContainer};

最低回购

我正在尝试一个
react
+
electron
+
webpack2
演示项目。目前我被困在
react-hot-loader3
。如下所示,热更新检查似乎工作正常,但没有按预期更新(我对组件所做的更改未更新)。这和电子或其他东西有关吗?我以前从未使用过react hot loader

webpack.config.js

index.jsx

从“React”导入React;
从“react dom”导入react dom;
从“react hot loader”导入{AppContainer};
从“./Routes”导入路由;
const main=document.createElement('div');
main.id='main';
document.body.appendChild(主);
const doRender=(组件)=>{
ReactDOM.render(
(主要),;
}
多伦德(路线);
如果(模块热){
module.hot.accept('./routes',()=>{
多伦德(路线);
});
}
routes/index.jsx

导出默认类路由扩展React.Component{
render(){
返回(
路由//此处的更改文本未正确更新。
);
}
}

解决了此问题,最低回购金额为。希望这有帮助

var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: [
    'react-hot-loader/patch',
    path.resolve(__dirname, './src/index.jsx'),
  ],
  output: {
    publicPath: '/',
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js',
  },
  module: {
    rules: [
      {
        test: /\.js*/,
        include: [ path.resolve(__dirname, 'src') ],
        loader: 'babel-loader',
      }, {
        test: /\.less$/,
        use: [
          { loader: 'style-loader' },
          { loader: 'css-loader' },
          { loader: 'less-loader' },
        ],
      },
    ],
  },
  resolve: {
    alias: {
      'COMPONENTS': path.resolve(__dirname, './src/components'),
      'CONTAINERS': path.resolve(__dirname, './src/containers'),
      'MODELS': path.resolve(__dirname, './src/models'),
      'ROUTES': path.resolve(__dirname, './src/routes'),
      'SERVICES': path.resolve(__dirname, './src/services'),
      'THEMES': path.resolve(__dirname, './src/themes'),
    },
    extensions: ['.js', '.jsx', '.less'],
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),

    new webpack.NoEmitOnErrorsPlugin(),

    new webpack.NamedModulesPlugin(),

    new HtmlWebpackPlugin({
      template: path.resolve(__dirname, 'src', 'index.html'),
    }),
  ],
  devtool: 'source-map',
  target: 'electron-renderer',
  devServer: {
    port: 8000,
    hot: true,
    historyApiFallback: true,
  },
};
import React from 'react';
import ReactDOM from 'react-dom';
import { AppContainer } from 'react-hot-loader';
import Routes from './routes';

const main = document.createElement('div');
main.id = 'main';
document.body.appendChild(main);

const doRender = (Component) => {
  ReactDOM.render(
    <AppContainer>
      <Component />
    </AppContainer>
  , main);
}

doRender(Routes);

if(module.hot) {
  module.hot.accept('./routes', () => {
    doRender(Routes);
  });
}
export default class Routes extends React.Component {
  render() {
    return(
      <div>routes</div> // change text here did not update correctly.
    );
  }
}