简体   繁体   English

当我只希望类调用onClick时,它总是在页面加载时被调用

[英]Function in my class is always getting called on page load, when I only want it called onClick

I have a function that I want to call only onClick. 我有一个只想调用onClick的函数。 However it's getting called right when the page loads, and then the onClick doesn't call it again afterwards. 但是,在页面加载时它会被正确调用,然后onClick之后便不会再次调用它。

handleIncrement() is what I'm trying to call, that's being called on load, and the button in render is where I'm trying to have it called onClick. handleIncrement()是我要调用的东西,它是在加载时被调用的,而render中的按钮是我试图将其称为onClick的地方。

class Counter extends Component {
  state = {
    count: 0
  };

  handleIncrement() {
    console.log("Increment Clicked", this.state.count);
  }

  render() {
    return (
      <div>
        <span style={{ fontSize: 20 }} className={this.getBadgeClasses()}>
          {this.formatCount()}
        </span>
        <button
          onClick={this.handleIncrement()}
          style={{ fontSize: 25 }}
          className="btn btn-secondary btn-sm 30"
        >
          Increment
        </button>
      </div>
    );
  }

  getBadgeClasses() {
    let classes = "badge m-2 badge-";
    classes += this.state.count === 0 ? "warning" : "primary";
    return classes;
  }

  formatCount() {
    const { count } = this.state;
    return count === 0 ? "Zero" : count;
  }
}

将其更改为onClick={() => this.handleIncrement()}

onClick={this.handleIncrememt}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM