gpt4 book ai didi

javascript - React.createClass 不是一个函数,可能是 webpack 编译错误

转载 作者:行者123 更新时间:2023-11-30 14:56:31 25 4
gpt4 key购买 nike

我使用 webpack 设置 react 环境,并使用这一行运行代码:

webpack -d && webpack-dev-server --content-base src/ --inline --hot --port 1234

cmd 运行一些构建,然后显示以下行:

webpack: Compiled successfully.

代替:

webpack: bundle is now VALID

就像我在示例中看到的那样。

然后在浏览器控制台上显示:

Uncaught TypeError: React.createClass is not a function

它会是什么?

我的依赖项:

"dependencies": {
"react": "^16.0.0",
"react-dom": "^16.0.0"
},
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"webpack": "^3.8.1",
"webpack-dev-server": "^2.9.4"
}

我的代码:

var React = require('react');
var ReactDOM = require('react-dom');

// Create component
var TodoComponent = React.createClass({
render: function () {
return(
<h1>Hello!!</h1>
);
}
});

// put component into html page

ReactDOM.render(<TodoComponent />, document.getElementById('todo-container'));

顺便说一下,这是我的第一个问题,所以请原谅我的初学者错误.. ;)

最佳答案

在 React 16.x 版本中,React.createClass 已被移动到它自己的名为 create-react-class 的包中。

文档在这里: https://reactjs.org/blog/2017/09/26/react-v16.0.html#packaging

因此,您应该执行 npm i create-react-class --save

然后调整你的代码:

var React = require('react');
var ReactDOM = require('react-dom');
var createClass = require('create-react-class');

// Create component
var TodoComponent = createClass({
render: function () {
return(
<h1>Hello!!</h1>
);
}
});

// put component into html page

ReactDOM.render(<TodoComponent />, document.getElementById('todo-container'));

否则,你应该使用 ES6 class 组件,它在 react 中更惯用:

var React = require('react');
var ReactDOM = require('react-dom');

// Create component
class TodoComponent extends React.Component {
render() {
return(
<h1>Hello!!</h1>
);
}
}

// put component into html page

ReactDOM.render(<TodoComponent />, document.getElementById('todo-container'));

关于javascript - React.createClass 不是一个函数,可能是 webpack 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com