【问题标题】:Remove inline listener in react在反应中删除内联侦听器
【发布时间】:2016-06-20 13:23:33
【问题描述】:

在 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
      }
    }
  });

【问题讨论】:

    标签: javascript reactjs listener inline


    【解决方案1】:

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

    onClick={10 &lt; 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
                });
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多