state prev는 state의 바로 직전 값을 의미한다.
prev가 필요한 이유는
const [state, setState] = useState(0)
const function Counter = () =>{
setState(state+1)
setState(state+1)
setState(state+1)
setState(state+1)
setState(state+1)
}
이 Counter 함수안에서 setState를 다섯번 주었지만, 결과는 한번만 더해진 1이 나오기 때문이다.
setState의 값은 계속 초기값인 0이 들어가기 때문에,
다섯번 모두 0+1 이 된다.
누적값을 구하고 싶을때는 prev를 사용해야한다.
const [state, setState] = useState(0)
const function Counter = () =>{
setState(prev+1)
setState(prev+1)
setState(prev+1)
setState(prev+1)
setState(prev+1)
}
첫번째 setState에서 0+1
두번째 setState에서 첫번째 값인 1과 1을 더해서 2,
첫번째 setState에서 두번째 값인 2와 1을 더해서 3
.
.
이렇게 누적되어 5를 받을 수 있게 된다.