Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- HTML
- K디지털기초역량훈련
- 자바스크립트
- 코딩
- 패스트캠퍼스
- react
- object-oriented programming
- 리액트
- redux
- bucket list
- 노마드코더
- class
- 국비지원
- CSS
- 반응형 이메일
- ENFJ포스팅
- JavaScript
- 버킷리스트
- 객체지향
- free react course
- 무료리액트강의
- nomadcoders
- 반응형
- 이메일 코딩
- 바이트디그리
- React & Redux로 시작하는 웹 프로그래밍
- 내일배움카드
- REACT강의
- ENFJ
Archives
- Today
- Total
미미 공부/취미방
[노마드 코더] All you need to know about State #3.1 본문
1) setState()로 state object 변화를 감지하고 render를 다시 동작시켜야 된다.
class App extends React.Component {
state = {
count: 0
};
add = () => {
console.log("add");
};
minus = () => {
console.log("minus")
};
render() {
return (
<div>
<h1>The number is {this.state.count}</h1>
<button onClick={this.add}>add</button>
<button onClick={this.minus}>minus</button>
</div>
)
}
}
add = () => {
this.state.count = 1;
};
minus = () => {
this.state.count = -1;
};
위의 코드는 동작하지 않는다.
그 이유는
add / minus 버튼을 클릭 > state object의 값이 변함 > 변한 값을 감지 > render 하위 요소들을 다시 읽어줘야 하는데,
변화감지 / render 다시 읽어주기를 못 한다.
setState()는 이런걸 동작하기 때문에, 데이터가 변할때는 반드시 setState()를 사용해야 된다.
2) setState를 사용한 코드
add = () => {
this.setState({count : this.state.count + 1});
}
remove = () => {
this.setState({count : this.state.count - 1});
}
하지만, setState안에 this.state가 들어가는게 좋지 않아서 코드를
add = () => {
this.setState(someProp => ({count : someProp.count + 1}));
}
remove = () => {
this.setState(someProp => ({count : someProp.count - 1}));
}
저 arrow function과 this.state가 someProp으로 대체될 수 있는건 공부를 더 하고 와야겠다...
(ES6랑 연관이 있는것 같음)
'Programming' 카테고리의 다른 글
탬플릿 없이 반응형 이메일 코딩 1/2부 (0) | 2021.11.27 |
---|---|
[노마드 코더] Component Life Cycle #3.2 (0) | 2021.10.23 |
[노마드 코더] Class Components and State #3.0 (0) | 2021.10.16 |
[노마드 코더] Protection with PropTypes #2.4 (0) | 2021.10.16 |
[노마드 코더] Reusable Components with JSX + Props #2.1 (0) | 2021.10.16 |
Comments