reactjs - 未捕获的 TypeError:React.createClass 不是函数异常
问题描述
我做了一个这样的html页面
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>React project</title>
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/babel-core@5.8.38/browser.min.js"></script>
</head>
<body>
<div id="root"></div>
<script src="react.js" type="text/babel"></script>
</body>
</html>
而文件 react.js 像这样
var Comp1 = React.createClass({
render: function() {
return(
<h1> Comp1 </h1>
);
}
});
ReactDOM.render(
<div>
<Comp1/>
</div>,
document.getElementById("root")
);
但是,我得到了“Uncaught TypeError: React.createClass is not a function”异常,为什么?
解决方案
通常你会将一个 React 组件定义为一个普通的 JavaScript 类:
class Comp1 extends React.Component {
render() {
return <h1> Comp1 </h1>;
}
}
如果你还没有使用 ES6,你可以使用 create-react-class 模块来代替:
var createReactClass = require('create-react-class');
var Comp1= createReactClass({
render: function() {
return <h1> Comp1 </h1>;
}
});
或者,
import React from 'react';
const Contacts = React.createClass({
render() {
return (
<div></div>
);
}
});
export default Contacts;
推荐阅读
- r - 如何模仿新行的拖动功能,例如在 Excel 中但在 R 中?
- syncfusion - 后端数据源更改后更新 SyncFusion Grid
- html - 如何使用 html 中的清除按钮截断 SQL 中的 2 个表?
- c# - 如何解决 IIS 服务器上的 cors 错误
- reactjs - React Native -- 试图改变一个不可配置属性的 getter。(设备)
- javascript - 如何确定最接近顶部的部分
- gitlab - Gitlab CI/CD 不会运行我的部署阶段
- docker - 命令 apt-add-repository --remove PPA 增加 docker 镜像大小
- angular - 离子5中的Base64到pdf
- android - 当我尝试运行 Gradle Play Publisher 任务时不断收到内部服务器错误