코딩이야기/인터넷 강의
section0. 10-함수형 setState
RockSlim
2024. 5. 13. 21:07
함수형 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값을 활용할 경우에는 꼭)