컴포넌트 내에서 

State 자신이 가지고있고 

변경할때는 setState() 호출한다. 

 

 

 

import React, { Component } from 'react'; 

class Counter extends Component { 

state = { 

number0 

}; 

handelIncrease = () => { 

this.setState({ 

numberthis.state.number + 1 

}); 

}; 

handelDecrease = () => { 

this.setState({ 

numberthis.state.number + -1 

}); 

}; 

render() { 

return ( 

<div> 

<h1>카운터</h1> 

<div : {this.state.number} </div> 

<button onClick={this.handelIncrease}>+</button> 

<button onClick={this.handelDecrease}>-</button> 

</div> 

); 

} 

} 

export default Counter; 

 

 

근데  이것만  => 썻는가? 

 

annot read property 'setState' of undefined 

handelIncrease 

/src/Counter.js:8:9 

   5 |   number: 0 

6 | }; 

7 | handelIncrease() { 

>  8 |   this.setState({ 

      ^ 

9 |     number: this.state.number + 1 

10 |   }); 

11 | }; 

 

 

이런식으로 this 모른다. 

 

 

import React, { Component } from 'react'; 

class Counter extends Component { 

state = { 

number0 

}; 

constructor(props) { 

super(props); 

this.handelIncrease = this.handelIncrease.bind(this); 

this.handelDecrease = this.handelDecrease.bind(this); 

} 

handelIncrease() { 

this.setState({ 

numberthis.state.number + 1 

}); 

}; 

 

handelDecrease() { 

this.setState({ 

numberthis.state.number + -1 

}); 

}; 

render() { 

return ( 

<div> 

<h1>카운터</h1> 

<div : {this.state.number} </div> 

<button onClick={this.handelIncrease}>+</button> 

<button onClick={this.handelDecrease}>-</button> 

</div> 

); 

} 

} 

export default Counter; 

이렇게 바꿔줄수있따 

Constructor 컴포넌트가 처음 실행될때 실행되는것이고 

이것으로 this 명시해주는 작업이 필요하다. 

 

 


'오락기 > react' 카테고리의 다른 글

PropTypes  (0) 2018.08.17
노마드 코더님 영화 사이트 클론코딩  (0) 2018.08.17
lifecycle  (0) 2018.06.21
props  (0) 2018.06.21
jsx  (0) 2018.06.21

+ Recent posts