67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Write a Simple Counter
 | 
						|
---
 | 
						|
## Write a Simple Counter
 | 
						|
 | 
						|
#### Hint 1:
 | 
						|
```JSX
 | 
						|
class Counter extends React.Component {
 | 
						|
  constructor(props) {
 | 
						|
    super(props);
 | 
						|
    this.state = {
 | 
						|
      count: 0
 | 
						|
    };
 | 
						|
    // change code below this line
 | 
						|
         // Remember the previous challange. 
 | 
						|
         // Bind "this" for each of these three method (increment(),decrement() and reset()).
 | 
						|
    // change code above this line
 | 
						|
  }
 | 
						|
  // change code below this line
 | 
						|
         // Define these three method here.
 | 
						|
         // Inside these methods, call "setState()" method to update the data of construtor`s state. 
 | 
						|
  // change code above this line
 | 
						|
  render() {
 | 
						|
    return (
 | 
						|
      <div>
 | 
						|
        <button className='inc' onClick={this.increment}>Increment!</button>
 | 
						|
        <button className='dec' onClick={this.decrement}>Decrement!</button>
 | 
						|
        <button className='reset' onClick={this.reset}>Reset</button>
 | 
						|
        <h1>Current Count: {this.state.count}</h1>
 | 
						|
      </div>
 | 
						|
    );
 | 
						|
  }
 | 
						|
};
 | 
						|
```
 | 
						|
 | 
						|
## Solution:
 | 
						|
```JSX
 | 
						|
class Counter extends React.Component {
 | 
						|
  constructor(props) {
 | 
						|
    super(props);
 | 
						|
    this.state = {
 | 
						|
      count: 0
 | 
						|
    };
 | 
						|
    // change code below this line
 | 
						|
      this.increment = this.increment.bind(this); 
 | 
						|
      this.decrement = this.decrement.bind(this);
 | 
						|
      this.reset = this.reset.bind(this);
 | 
						|
    // change code above this line
 | 
						|
  }
 | 
						|
  // change code below this line
 | 
						|
    increment(){this.setState({count: this.state.count + 1})}
 | 
						|
    decrement(){this.setState({count: this.state.count - 1})}
 | 
						|
    reset(){this.setState({count: 0})}
 | 
						|
  // change code above this line
 | 
						|
  render() {
 | 
						|
    return (
 | 
						|
      <div>
 | 
						|
        <button className='inc' onClick={this.increment}>Increment!</button>
 | 
						|
        <button className='dec' onClick={this.decrement}>Decrement!</button>
 | 
						|
        <button className='reset' onClick={this.reset}>Reset</button>
 | 
						|
        <h1>Current Count: {this.state.count}</h1>
 | 
						|
      </div>
 | 
						|
    );
 | 
						|
  }
 | 
						|
};
 | 
						|
```
 |