【问题标题】:Webpack build React.createClass is not a functionWebpack 构建 React.createClass 不是函数
【发布时间】:2017-11-09 06:15:15
【问题描述】:

我有一个带有 webpack 模块构建器的 ReactJS 应用程序,以下是我的 webpack.config.js

中的配置
var path = require('path');
var webpack = require('webpack');

module.exports = {
    entry: {
        app : './src/scripts/app.js'
    },
    output: {
        filename: '[name].bundle.js',
        path: path.resolve(__dirname, 'public')
    },
    context: __dirname,
    resolve: {
        extensions: ['.js', '.jsx', '.json', '*']
    },
    module: {
        rules: [
            {
                test: /\.jsx?$/,
                exclude: /(node_modules|bower_components)/,
                loader: 'babel-loader',
                options: {
                    presets: ['react', 'es2015']
                }
            },
            {
                test: /\.css$/,
                use: [
                    'style-loader',
                    'css-loader'
                ]
            },
            {
                test: /\.(png|svg|jpg|gif)$/,
                use: [
                    'file-loader'
                ]
            },
            {
                test: /\.(woff|woff2|eot|ttf|otf)$/,
                use: [
                    'file-loader'
                ]
            }
        ]
    }
};

我的app.js中有以下代码

import React from 'react';
import ReactDOM from 'react-dom';

var MainApp =  React.createClass({
    render: function(){
        return (
            <div>
                <div>Header component</div>
                <div>Boady component</div>
            </div>
        );
    }
});

ReactDOM.render(
    <MainApp />,
    document.getElementById('container')
);

现在运行服务器后,当我在浏览器中加载我的页面时出现以下错误:

未捕获的类型错误:_react2.default.createClass 不是函数

附上报错截图:

我想了解有关此问题的更多详细信息,非常感谢您的帮助。

【问题讨论】:

标签: javascript reactjs webpack ecmascript-6 babeljs


【解决方案1】:

你需要安装这个 npm 扩展:

npm install create-react-class --save

然后使用这段代码:

var createReactClass = require('create-react-class');
var MainApp = createReactClass({
    render: function(){
        return (
            <div>
                <div>Header component</div>
                <div>Boady component</div>
            </div>
        );
    }
});
            }

【讨论】:

  • 完美解决方案。谢了。
  • import createReactClass from ('create-react-class');
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-25
  • 2016-05-04
  • 2023-01-04
  • 2016-09-07
相关资源
最近更新 更多