React.js 不会在我的 Codepen 中呈现

React.js won't render in my Codepen

我正在尝试创建一个计数器,但无法在页面上显示渲染中的内容。

这是我在 Codepen 中的 JS 代码(在外部 JS 中添加了 React 和 ReactDOM)

class Counter extends React.Component {
  constructor() {
    super();
    this.state = {
    };
    this.flash = "";
    this.count = 0;
  }

  componentWillReceiveProps(nextProps) {
    var newValue = nextProps.count;
    if (this.count !== newValue) {
      this.flash = this.flash === "flash1" ? "flash2" : "flash1";
    }
  }

  render () {
    return (
      <div id="counter">
        <button>+</button>
        <button>-</button>
        <div id="count" className={this.flash}>
          {this.count}
        </div>
      </div>
    );
  };
}


ReactDOM.render(<Counter />, document.getElementById('countContainer'));

我可以在我的 JS 代码中看到,在我的 Codepen 中通常应该是棕色,所以我显然遗漏了一些东西(目前是黄色)。

在我的 HTML 我有以下内容

<div id="countContainer">
</div>

注意:关于代码最终应该能够做什么,我还没有完成。我想我应该在继续之前尝试让它呈现在页面上。

我的代码笔是:URL

我试过了,但在第一个 JSX 标签位于 render() 的那一行出现了错误。除了 React 和 ReactDOM 之外,我还通过添加 Babel 预处理器来修复它。

您可以尝试使用此代码来使计数器同时使用递增计数和递减计数。

class Counter extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      count :0
    };
    this.increment=this.increment.bind(this);
    this.decrement=this.decrement.bind(this);
  }
increment(){
  this.setState({count:this.state.count+1});
}
decrement(){
  this.setState({count:this.state.count-1});
}
  render () {
    return (
      <div id="counter">
        <button onClick={this.increment}>+</button>
        <button onClick={this.decrement}>-</button>
        <div>
          {this.state.count}
        </div>
      </div>
    );
  }
}


ReactDOM.render(<Counter />, document.getElementById('countContainer'));

只需定义函数并使用 onClick() 触发它们。

这是使用您的代码在 codepen 中运行的计数器,对其进行了一些修改以使其运行。 https://codepen.io/coderakki/pen/QOQqMP?editors=0010

更新:另外,您需要在组件的状态中定义计数。