* fix: restructure certifications guide articles * fix: added 3 dashes line before prob expl * fix: added 3 dashes line before hints * fix: added 3 dashes line before solutions
		
			
				
	
	
	
		
			1.4 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.4 KiB
		
	
	
	
	
	
	
	
title
| title | 
|---|
| Bind 'this' to a Class Method | 
Bind 'this' to a Class Method
Problem Explanation
If a method on JavaScript class need to access some internal state of the instance, like this.state, the method need to be bound to the instance of the class. A more detailed description of 'this' binding can be found here
Hints
Hint 1
Like many things in programming, there is more than one way to bind this. For this challenge we are going to stick with constructor binding.
class MyClass {
  constructor() {
    this.myMethod = this.myMethod.bind(this);
  }
  myMethod() {
    // whatever myMethod does
  }
}
Solutions
Solution 1 (Click to Show/Hide)
class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      itemCount: 0
    };
    // change code below this line
    this.addItem = this.addItem.bind(this);
    // change code above this line
  }
  addItem() {
    this.setState({
      itemCount: this.state.itemCount + 1
    });
  }
  render() {
    return (
      <div>
        { /* change code below this line */ }
        <button onClick={this.addItem}>Click Me</button>
        { /* change code above this line */ }
        <h1>Current Item Count: {this.state.itemCount}</h1>
      </div>
    );
  }
}