加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – Webpack Hot Module Reloader不使用React Stateless

发布时间:2020-12-15 09:35:10 所属栏目:百科 来源:网络整理
导读:我在使用反应无状态函数进行热重新加载webpack-dev-middleware时遇到了一些麻烦,但如果我创建一个类扩展组件,则工作正常. 例如,这非常有效. // home.jsimport React from 'react'export default class Home extends React.Component { render() { return ( d
我在使用反应无状态函数进行热重新加载webpack-dev-middleware时遇到了一些麻烦,但如果我创建一个类扩展组件,则工作正常.

例如,这非常有效.

// home.js

import React from 'react'

export default class Home extends React.Component {
  render() {
    return (
            <div>
                <h1>Drop it like it's hot</h1>
            </div>
        )
  }
}

然而,这失败了.

// home.js

import React from 'react'

export default function Home() {
  return (
        <div>
            <h1>Hello World</h1>
        </div>
    )
}

错误:

[Warning] [HMR] The following modules couldn't be hot updated: (Full reload needed) (bundle.js,line 1742)
This is usually because the modules which have changed (and their parents) do not know how to hot reload themselves. See http://webpack.github.io/docs/hot-module-replacement-with-webpack.html for more details.
[Warning] [HMR]  - ./client/components/home.js (bundle.js,line 1750)

解决方法

如果它仍然相关并且人们还有问题,那么有一种方法,版本3仍然在开发中.我将在这里粘贴我的package.json和webpack.config.js文件的设置,但如果你想要一个工作示例 here is the repo I created for this

的package.json

{
  "name": "favesound-project","version": "1.0.0","main": "index.js","scripts": {
    "test": "echo "Error: no test specified" && exit 1","start": "webpack-dev-server --progress --colors --hot --config ./webpack.config.js"
  },"devDependencies": {
    "babel-core": "^6.0.20","babel-loader": "^6.0.1","babel-preset-es2015": "^6.0.15","babel-preset-react": "^6.0.15","babel-preset-stage-0": "^6.0.15","chai": "^3.5.0","enzyme": "^2.3.0","exports-loader": "^0.6.3","imports-loader": "^0.6.5","jsdom": "^9.2.1","mocha": "^2.5.3","react-addons-test-utils": "^15.1.0","react-hot-loader": "^3.0.0-beta.0","webpack": "^1.12.2","webpack-dev-server": "^1.12.1"
  },"dependencies": {
    "react": "^15.1.0","react-dom": "^15.1.0","react-redux": "^4.4.5","react-router": "^2.4.1","react-router-redux": "^4.0.5","redux": "^3.5.2","redux-logger": "^2.6.1","redux-thunk": "^2.1.0","soundcloud": "^3.1.2","whatwg-fetch": "^1.0.0"
  },"author": "","license": "ISC","keywords": [],"description": ""
}

webpack.config.js

const webpack = require('webpack');

module.exports = {
    entry: [
        'react-hot-loader/patch','webpack-dev-server/client?http://localhost:8080','webpack/hot/only-dev-server','./src/index.js'
    ],module: {
        loaders: [{
            test: /.jsx?$/,exclude: /node_modules/,loaders: ['babel']
        }]
    },resolve: {
        extensions: ['','.js','.jsx']
    },output: {
        path: __dirname + '/dist',publicPath: '/',filename: 'bundle.js'
    },devServer: {
        contentBase: './dist',hot: true
    }
};

您可以使用我创建的repo作为样板,并在生产时升级react-hot-loader版本.干杯.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读