账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    使用react-hot-loader之后报错“target container is not a Dom Element"?
    83
    0

    webpack.config.js

    const path = require('path')
    const webpack = require('webpack')
    const ExtractTextWebapckPlugin = require('extract-text-webpack-plugin') //CSS文件单独提取出来
    const HtmlWebpackPlugin = require('html-webpack-plugin')
    module.exports = {
        entry: './src/index.js',
        output: {
            path: path.resolve(__dirname, 'dist'),//出口文件
        filename: '[name].[hash:8].bundle.js'
        },
        module: {
            rules: [{
                test: /\.js|jsx$/,
                exclude: /node_modules/,
                use:  {
                    loader: 'babel-loader',
                    options: {
                  cacheDirectory: true,
                        presets: ['react', 'env', 'stage-0'],
                  plugins: ['react-hot-loader/babel']
                    }
                }
            },{
                test: /\.less$/,
                use: ExtractTextWebapckPlugin.extract({
              fallback: 'style-loader',
              use: ['css-loader', 'less-loader']
          }),
          include: path.join(__dirname, 'src'),
          exclude: /node_modules/
         }]
        },
        devServer: {
            contentBase: path.join(__dirname, 'src'),
            publicPath: "/",
            compress: true, 
            port: 8880,
            inline: true,
            hot: true
        },
        plugins: [
            new webpack.HotModuleReplacementPlugin(),
            new HtmlWebpackPlugin()
        ]
    }

    index.js

    import React from 'react'
    import ReactDom from 'react-dom'
    
    
    import { hot } from 'react-hot-loader'
    import App from './App.jsx'
    
    const Page = hot(module)(App)
    console.log(document.getElementById('app'))
    ReactDom.render(<Page />, document.getElementById('app'))

    html

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>React</title>
    <meta name="description" content="">
    <meta name="keywords" content="">
    <link href="" rel="stylesheet">
    </head>
    <body>
        <div id='app'></div>
        <script src='main.5e3d29b2.bundle.js'></script>
    </body>
    </html>

    启动webpack-dev-server之后报错,页面只剩下一个script,上面的div没了,这是为什么呢?求大神解惑

    3
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 剑鬼非人哉 普通会员 1楼

      这个错误信息意味着你的React组件在尝试渲染时,目标容器(<div><div id="myDiv">)不是DOM元素。

      React Hot Loader 是一个用于自动检测React组件是否需要重新渲染的库。如果一个React组件的DOM元素没有被完全渲染,那么它会自动将这个组件重新渲染。

      如果你在使用React Hot Loader 之后仍然收到这个错误信息,那么问题可能出在React组件的DOM元素上。例如,可能是在React组件内部添加了JavaScript代码,或者可能是在父组件中使用了<div>元素。

      建议你检查你的React组件的DOM元素是否被正确渲染。你也可以检查React组件内部是否有JavaScript代码,并确保它没有被错误地添加到DOM元素中。此外,你还可以检查父组件中是否有<div>元素,并确保它没有被错误地使用。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部