Binding Event Handlers
Mendapatkan increment
Cara lama :
import React, { Component } from 'react';
class Counter extends Component {
state = {
count: 0
};
constructor() {
super();
this.handleIncrement = this.handleIncrement.bind(this);
}
handleIncrement() {
console.log("Increment Clicked", this);
}
render() {
return(
<div>
<span className={this.getBadgeClasses()}>{this.formatCount()}</span>
<button onClick={this.handleIncrement} className="btn btn-secondary btn-sm">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 ? <h1>Zero</h1> : count;
}
}
export default Counter
Cara simple tanpa constructor, hanya dengan mengubah arrow function handleIncrement() :
import React, { Component } from 'react';
class Counter extends Component {
state = {
count: 0
};
handleIncrement = () => {
console.log("Increment Clicked", this);
}
render() {
return(
<div>
<span className={this.getBadgeClasses()}>{this.formatCount()}</span>
<button onClick={this.handleIncrement} className="btn btn-secondary btn-sm">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 ? <h1>Zero</h1> : count;
}
}
export default Counter
Last updated
Was this helpful?