我学习反应 - 我复制一些代码,我试图看看它是否有效。 我得到一个例外,我无法理解它的内容以及如何继续
代码:
var Game = React.createClass({
getInitialState: function() {
return { winner: this.getRandomCell(), score: 0 };
},
getRandomCell: function() {
return _.random(this.props.count - 1);
},
clicked: function(i) {
if ( i === this.state.winner ) {
this.setState({
score: this.state.score + 5,
winner: this.getRandomCell()
});
} else {
this.setState({
score: this.state.score - 5
});
}
},
renderButton: function(i) {
var cls = "cell ";
if ( i === this.state.winner ) {
cls += "winner";
}
return <button className={cls} onClick={this.clicked.bind(this,i)}></button>
},
render: function() {
var btns = [];
for ( var i=0; i < this.props.count; i++ ) {
btns.push(this.renderButton(i));
}
return (
<div>
<p>Score: {this.state.score}</p>
<div>
{btns}
</div>
</div>
)
}
});
React.render(<Game count={9} />, document.querySelector('#container'));
问题在于:
return <button className={cls} onClick={this.clicked.bind(this,i)}></button>
例外是“Uncaught SyntaxError:Unexpected token&lt;”
答案 0 :(得分:1)
createClass()
已不在React包中,它已移至create-react-class
包,此函数的目的是编写React code without ES6。
如果您打算使用ES6,则应将代码重构为函数或React.Component
类(Official React intro tutorial)
编辑:关于您的例外尝试在按钮上添加标签:
<button className={cls} onClick={this.clicked.bind(this,i)}> MyButton </button>