在内部删除内联侦听器

时间:2016-06-20 13:23:33

标签: javascript reactjs listener inline

在react中删除内联点击侦听器的正确方法是什么?

  var ClickComponent = React.createClass({
    render: function () {
      return (<div onClick={this.onClickStuff} className="orange noselect">
       Click me {this.state.clicks || ''}
      </div>);
    },
    getInitialState: function () {
      return {
        clicks: 0
      };
    },
    onClickStuff: function (e) {
      this.setState({
        clicks: this.state.clicks + 1
      });
      if(10 < this.state.clicks){
        // remove listener
      }
    }
  });

1 个答案:

答案 0 :(得分:0)

在没有onClick事件的情况下重新渲染您的组件:

onClick={10 < this.state.clicks?undefined:this.onClickStuff}

看起来像:

    var ClickComponent = React.createClass({
        render: function () {
            return (<div onClick={10 < this.state.clicks?undefined:this.onClickStuff} className="orange noselect">
            Click me {this.state.clicks || ''}
            </div>);
        },
        getInitialState: function () {
            return {
                clicks: 0
            };
        },
        onClickStuff: function (e) {
            this.setState({
                clicks: this.state.clicks + 1
            });
        }
    });