함수형 setState
setState에 함수를 넣고 그 안에서 새로운 state를 리턴을 하는 것.
함수형 setState 구조
this.setState((prevState)=>{
return {
first: Math.ceil(Math.random() * 9),
second: Math.ceil(Math.random() * 9),
value:'',
result : '정답',
prevAns : prevState.value,
}
});
함수형 setState와 기존 setState의 차이점
예전 state값을 다음 state 값에 활용 가능.
기존 state 바꾸는 방식으로 하면 비동기 문제가 생긴다.
this.setState({
value: this.state.value + 1,
});
this.setState({
value: this.state.value + 1,
});
this.setState({
value: this.state.value + 1,
});
이렇게 setState를 3번 호출 하면 this.state.value에 +3이 된 값이 들어있어야 하는데, setState가 비동기라 바로 적용되지 않아서 +1만 되는 경우가 생길 가능성이 크다.
그렇기 때문에 setState를 할 때는 그냥 함수형으로 사용하자. (특히, 기존 state값을 활용할 경우에는 꼭)
'코딩이야기 > 인터넷 강의' 카테고리의 다른 글
section1. 2-1. React Hooks 사용하기 (0) | 2024.05.13 |
---|---|
section0. 11-ref (0) | 2024.05.13 |
section0. 9-Fragment와 기타 팁들 (0) | 2024.05.12 |
Section0. 4-가독성을 위한 JSX(XML임!) (0) | 2024.05.11 |
[코딩애플] codingapple react 강의 후기 (0) | 2022.11.08 |