67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Set State with this.setState
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## Set State with this.setState
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Hint 1:
							 | 
						||
| 
								 | 
							
								```JSX
							 | 
						||
| 
								 | 
							
								class MyComponent extends React.Component {
							 | 
						||
| 
								 | 
							
								  constructor(props) {
							 | 
						||
| 
								 | 
							
								    super(props);
							 | 
						||
| 
								 | 
							
								    this.state = {
							 | 
						||
| 
								 | 
							
								      name: 'Initial State'
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    this.handleClick = this.handleClick.bind(this);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  handleClick() {
							 | 
						||
| 
								 | 
							
								    // change code below this line
							 | 
						||
| 
								 | 
							
								       // Update the state data by using "this.setState()" method.
							 | 
						||
| 
								 | 
							
								       // You can look to the sample inside the description for calling "setState()" method.
							 | 
						||
| 
								 | 
							
								    // change code above this line
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  render() {
							 | 
						||
| 
								 | 
							
								    return (
							 | 
						||
| 
								 | 
							
								      <div>
							 | 
						||
| 
								 | 
							
								        <button onClick={this.handleClick}>Click Me</button>
							 | 
						||
| 
								 | 
							
								        <h1>{this.state.name}</h1>
							 | 
						||
| 
								 | 
							
								      </div>
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Solution
							 | 
						||
| 
								 | 
							
								```JSX
							 | 
						||
| 
								 | 
							
								class MyComponent extends React.Component {
							 | 
						||
| 
								 | 
							
								  constructor(props) {
							 | 
						||
| 
								 | 
							
								    super(props);
							 | 
						||
| 
								 | 
							
								    this.state = {
							 | 
						||
| 
								 | 
							
								      name: 'Initial State'
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    this.handleClick = this.handleClick.bind(this);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  handleClick() {
							 | 
						||
| 
								 | 
							
								    // change code below this line
							 | 
						||
| 
								 | 
							
								    this.setState({
							 | 
						||
| 
								 | 
							
								      name: 'React Rocks!'
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    // change code above this line
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  render() {
							 | 
						||
| 
								 | 
							
								    return (
							 | 
						||
| 
								 | 
							
								      <div>
							 | 
						||
| 
								 | 
							
								        <button onClick={this.handleClick}>Click Me</button>
							 | 
						||
| 
								 | 
							
								        <h1>{this.state.name}</h1>
							 | 
						||
| 
								 | 
							
								      </div>
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								### Code Explanation:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 when users click the button the "handleClick()" method will be called and 
							 | 
						||
| 
								 | 
							
								inside this method the data of the constuctor\`s state will be updated by "setState()" method.
							 | 
						||
| 
								 | 
							
								then h1 tag will be changed with the new data of the constructor\`s state.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 |