找不到为什么反应教程代码不起作用

时间:2018-03-01 08:12:26

标签: reactjs

我学习反应 - 我复制一些代码,我试图看看它是否有效。 我得到一个例外,我无法理解它的内容以及如何继续

代码:

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;”

1 个答案:

答案 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>