我遵循有关 ReactJS
使用 watchify
和 babelify
的教程。我使用 react@16
版本并且我知道 React.createReactClass
已被弃用。我需要临时修复以摆脱 Uncaught ReferenceError: createReactClass is not defined
错误。
我已经安装了 create-react-class
包。我的 package.json 是:
{
"main": "index.js",
"scripts": {
"build": "watchify src/app.js -o public/bundle.js -t [ babelify --presets [ react es2015 ] ]",
"server": "cd public; live-server --port=1234 --entry-file=index.html"
},
"author": "",
"license": "ISC",
"dependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-react": "^6.24.1",
"babelify": "^8.0.0",
"live-server": "^1.2.0",
"watchify": "^3.9.0"
},
"devDependencies": {
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-3": "^6.24.1",
"create-react-class": "^15.6.2",
"react": "16.0.0",
"react-dom": "16.0.0",
"react-scripts": "1.0.16"
}
}
我的 app.js
是
const Sidebar = createReactClass({
render(){
let props = this.props;
return (<div className='sidebar'>
<h2> All Decks </h2>
<ul>
{props.decs.map((deck, i)=>
<li key={i}> {deck.name}</li>
)}
</ul>
{ props.addingDeck && <input ref='add'/> }
</div>);
}
});
ReactDOM.render(<App>
<Sidebar decks={[ { name: 'Deck 1' }]} addingDeck={false} />
</App>, document.getElementById('root'));
如何让 createReactClass 工作? 谢谢
编辑:我无法使用“var createReactClass = require('create-react-class');
”导入。可能是文件不是 jsx 文件。
最佳答案
对于有状态组件,您希望从 React 扩展 Component 类...
import React, {Component} from 'react'
class Sidebar extends Component {
render(){
let props = this.props;
return (<div className='sidebar'>
<h2> All Decks </h2>
<ul>
{props.decs.map((deck, i)=>
<li key={i}> {deck.name}</li>
)}
</ul>
{ props.addingDeck && <input ref='add'/> }
</div>);
}
});
ReactDOM.render(<App>
<Sidebar decks={[ { name: 'Deck 1' }]} addingDeck={false} />
</App>, document.getElementById('root'));
关于javascript - Uncaught ReferenceError : createReactClass is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47061672/