刚开始学习react,首先按照教程写了一遍代码。
React 入门实例教程 - 阮一峰的网络日志
过程中也并没有遇到什么问题,接着开始写小的项目,使用了node.js中npm 安装各种需要的包,按需引入;使用了gulp进行模块打包。
react相关:
npm install react –save
gulp相关:
gulp、gulp-connect、gulp-browserify、gulp-concat
首先我在main.js中
var React = require('react');
var MyComponent = require('./components/Hello.js');
React.render(<MyComponent/>,document.getElementById('app'));
//Hello.js文件
var React = require('react');
module.exports = React.createClass({
render:function(){
return(
<div><h1>React 问答</h1></div>
)
}
})
结果运行的时候一直报错:
Uncaught TypeError: React.createClass is not a function
不知道出现这种问题的原因到底是什么情况,后来按照Stack Overflow中的解答,可以正常运行了。
ReactJs CreateClass is not a function
它这里又另外引入了两个包:
npm install react react-dom –save
npm install create-react-class –save
修改后代码如下:
//main.js文件
var React = require('react');
var ReactDOM = require('react-dom');
var MyComponent = require('./components/Hello.js');
ReactDOM.render(<MyComponent/>,document.getElementById('app'));
//Hello.js文件
var React = require('react');
var createReactClass = require('create-react-class');
module.exports = createReactClass({
render:function(){
return(
<div><h1>React 问答</h1></div>
)
}
})
从回答中的另一条发现原来是版本问题
React.createClass is deprecated from version 16.0 onwards and has been moved to a separate package ‘create-react-class’
React.createClass从16.0就分离出出去了,成了一个独立的模块create-react-class
使用npm安装的最新版本已经是”react”: “^16.2.0”,所以各种版本更新也会导致学习中遇到问题额,前人已经给出相似问题的解决办法了,总之要自己学会查找对自己有用的答案。