首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应-热装载机:“热”找不到您提供的“模块”的“名称”

反应-热装载机:“热”找不到您提供的“模块”的“名称”
EN

Stack Overflow用户
提问于 2020-02-05 12:22:31
回答 3查看 1.6K关注 0票数 0

我使用Webpack 4创建了一个带有钩子的React,并且我正在尝试使用react-hot-loader本教程之后重新加载页面上的更改。

但是,当我尝试npm start时,我会在浏览器上得到以下错误:

错误:React-热加载程序:hot找不到您提供的modulename

这是我的App.js内容:

代码语言:javascript
复制
import React from 'react';
import { hot } from 'react-hot-loader';
import Header from './Header';

function App() {

  return (
    <section className="main">
      <Header />
    </section>
  );
}
export default hot(App);

或者,我尝试从hot中导入react-hot-loader/root,但是这样我得到了一个不同的错误:

错误:React:系统不支持react-hot-loader/root .请改用import {hot} from "react-hot-loader"

我怎样才能解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-05 12:48:02

嗯,看我webpack的吐露:

代码语言:javascript
复制
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(env.NODE_ENV) }),
  ],
  devServer: {
    contentBase: './dist',
    hot: true,
  },

我在插件中使用了webpack.HotModuleReplacementPlugin(),在devServer中使用了hot: true,如果使用react-hot-loader/root,这将导致第二个错误。

因此,将new webpack.HotModuleReplacementPlugin()webpack.config.js中删除,解决了我的问题。

票数 0
EN

Stack Overflow用户

发布于 2020-02-05 12:42:41

你应该在做出反应之前要求它:

代码语言:javascript
复制
import { hot } from 'react-hot-loader/root';
import React from 'react';

文档提到了这一点。

票数 0
EN

Stack Overflow用户

发布于 2022-09-24 04:59:13

从“react热加载程序”导入{ hot };导出默认的hot(模块)(应用程序);

从“react热加载程序/根”导入{ hot };导出默认热(应用程序);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60075762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档