簡體   English   中英

React Hot Loader無法反映瀏覽器中的更改

[英]React Hot Loader not reflecting changes in browser

我正在做一個React項目。 我正在嘗試在其中使用React Hot loader。 項目中的所有內容都可以正常工作,但是當我在組件中進行任何更改時,我無法在瀏覽器中看到更改。 我按照官方文檔設置了熱加載器。 但這是行不通的。 我的內容雖然已加載到瀏覽器(localhost:3000)中。 我應該怎么做才能使熱加載器開始顯示更改。 這是我的文件。

瀏覽器控制台

App.js

import React from 'react';
import Userlist from '../containers/user-list';
import UserDetail from '../containers/user-detail';
require('../../scss/style.scss');
import getMuiTheme from 'material-ui/styles/getMuiTheme';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import RaisedButton from 'material-ui/RaisedButton';


const App = () => (
    <MuiThemeProvider>
        <div>
            <RaisedButton label="Default" />
            <h2>
                Usernamess
            </h2>
            <Userlist/>
            <hr/>
            <h2>
                User Detail
            </h2>
            <hr/>
            <UserDetail/>
        </div>
    </MuiThemeProvider>
);

export default App;

webpack.config.js

var path = require('path');
var webpack = require('webpack');

module.exports = {
    devtool: 'eval',
    entry: [
        'webpack-dev-server/client?http://localhost:3000',
        'webpack/hot/only-dev-server',
        './dev/js/index.js'
    ],
    module: {
        loaders: [
            {
                test: /\.js$/,
                loaders: ['react-hot', 'babel'],
                include: path.join(__dirname, 'dev')
            },
            {
                test: /\.scss/,
                loader: 'style-loader!css-loader!sass-loader'
            }
        ]
    },
    output: {
        path: path.join(__dirname, 'dist'),
        filename: 'bundle.js',
        publicPath: '/static/'
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin()
    ]
};

package.json

{
  "name": "react-redux-template",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start": "node server.js",
    "lint": "eslint src"
  },
  "license": "ISC",
  "dependencies": {
    "babel-core": "^6.10.4",
    "babel-loader": "^6.2.4",
    "babel-polyfill": "^6.9.1",
    "babel-preset-es2015": "^6.9.0",
    "babel-preset-react": "^6.11.1",
    "babel-register": "^6.9.0",
    "cross-env": "^1.0.8",
    "css-loader": "^0.23.1",
    "expect": "^1.20.1",
    "material-ui": "^0.15.4",
    "node-libs-browser": "^1.0.0",
    "node-sass": "^3.8.0",
    "react": "^15.1.0",
    "react-addons-test-utils": "^15.1.0",
    "react-dom": "^15.1.0",
    "react-redux": "^4.4.5",
    "react-tap-event-plugin": "^1.0.0",
    "redux": "^3.5.2",
    "redux-logger": "^2.6.1",
    "redux-promise": "^0.5.3",
    "redux-thunk": "^2.1.0",
    "sass-loader": "^4.0.0",
    "style-loader": "^0.13.1",
    "webpack": "^1.13.1",
    "webpack-dev-middleware": "^1.6.1",
    "webpack-dev-server": "^1.14.1",
    "webpack-hot-middleware": "^2.11.0"
  },
  "devDependencies": {
    "babel-plugin-react-transform": "^2.0.2",
    "babel-preset-stage-0": "^6.5.0",
    "react-transform-hmr": "^1.0.4",
    "react-hot-loader": "^1.3.0"
  }
}

server.js

   var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var config = require('./webpack.config');

new WebpackDevServer(webpack(config), {
  publicPath: config.output.publicPath,
  hot: true,
  historyApiFallback: true
}).listen(3000, 'localhost', function (err, result) {
  if (err) {
    return console.log(err);
  }

  console.log('Listening at http://localhost:3000/');
});

項目結構

來自熱加載器官方線程的摘要https://github.com/gaearon/react-hot-loader/blob/master/docs/Troubleshooting.md

“以下模塊無法進行熱更新:(它們需要重新加載!)

如果在編輯根組件時收到此警告,則可能是因為您沒有從中導出任何內容,而是從那里調用React.render。 將您的根組件放在一個單獨的文件(例如App.jsx)中,並從調用React.render的index.js中要求它。”

所以我在App.js中進行了更改

export default class App extends Component {
    render() {
        return (
            <MuiThemeProvider>
                <div>
                    <RaisedButton label="Default" />
                    <h2>
                        Usernamess
                    </h2>
                    <Userlist/>
                    <hr/>
                    <h2>
                        User Deta
                    </h2>
                    <hr/>
                    <UserDetail/>
                </div>
            </MuiThemeProvider>
        );
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM