function App() {
const [count, setCount] = useState(0);
const onClick = () => {
setCount(count + 1);
// setCount((count) => count + 1);
setCount(count + 1);
// setCount((count) => count + 1);
console.log(count);
};
console.log("밖 카운트", count);
return (
<div>
<h1>{count}</h1>
<button onClick={onClick}>+</button>
</div>
);
}
setCount(count + 1); 일 때
안에 콘솔은 다 0찍히고 밖 콘솔은 +1
이유 : setState는 마지막에 처리되는데
이때 둘 다 0에서 1더할게~ 라고 인식한 상태
setCount((prev) => prev +1);
안에 콘솔도 마찬가지 0찍히고 밖 콘솔은 +2
이유 : 첫번째 - 나 0에서 1 더함
두번째 - 나 1에서 1 더함~
결과 2
setCount((prev) => prev + 1);
setCount(count + 1);
결과 : + 1
setCount(count + 1);
setCount((prev) => prev + 1);
결과 : + 2
참고
https://codingapple.com/unit/react-setstate-async-problems/