setState
310
작성한 질문수 17
import {useState} from 'react'
function Counter(props) {
const [count, setCount] = useState(0)
return (
<div>
<p>총 {count}번 클릭했습니다</p>
<button onClick={()=>setCount(count+1)}>
클릭
</button>
</div>
)
}
export default Counter
setCount(count+1)이 아니라
setCount(count++)하면 증가는 되지만 버벅거리는 느낌으로 바로바로 증가가 안되는데 왜그런건지 궁금합니다.
답변 1
0
안녕하세요, 소플입니다.
useState() 훅을 통해 만들어진 state는 상수(constant)입니다.
즉, 값을 맘대로 바꿀 수 없다는 것이죠.
그런데 ++count, count++ 등의 코드를 사용하면,
결국 count = count + 1 처럼 count의 값을 직접 수정하는 형태가 됩니다.
그래서 실제로는 저렇게 사용하면 안되고, 카운터도 작동하지 않는 것이 맞습니다.
버벅거리는 느낌으로 바로 증가가 안된다고 하셨는데, 원래 작동하지 않는 것이 맞습니다.
아마 console.log()를 보면 아래와 같은 에러가 발생했을 겁니다.

결론적으로 setCount()를 정상적으로 하기 위해서는,
아래와 같이 state의 값에 1을 더한 값을 직접 넣는 형태로 구현하거나,
setCount(count + 1);
또는 아래와 같이 기존 값을 받아서 1을 더한 값을 리턴해주는 함수를 넣어야 합니다.
setCount((count) => count + 1);
그리고 정확하게 카운트 값을 1 증가시키려면,
기존 값에 1을 더하는 두 번째 방법이 안전하고 확실한 방법이라고 보시면 됩니다.
감사합니다.
강의가 삭제되었다고 합니다
0
106
1
이거 왜 존재하지 않는다고 뜨는건가요
0
133
1
존재하지 않는 수업이라고 떠요
0
183
1
안드로이드 에뮬레이터 오류
0
100
1
교재 구입해서 강의 들으려고 하는데 커리큘럼이 없어졌어요.
0
125
1
prevIsConfiromed 질문
1
141
2
chapter14 잘이해가 되지않습니다..
1
135
2
2025년 3월 리액트버전
1
202
2
npm 설치 오류
1
175
1
chapter_07 콘솔로그 질문드려요~!
1
127
2
안녕하세요 미니블로그 실습 질문드립니다.
1
178
3
에러가 떠요
1
218
3
Chapter6 질문 드립니다
1
209
2
실습 코드 있을까요?
1
206
2
상태가 업데이트될때 컴포넌트 최상단의 console.log 코드가 두번 실행되는 이유가 궁금합니다.
1
233
2
npx create-react-app my-app 명령어 입력이 잘못된 것 같습니다
0
308
3
이름과 코멘트 줄바꿈이 안 됩니다.
0
140
1
버튼이 안 뜹니다
0
303
2
npx create-react-app my-app
1
470
2
jsx 코드 작성해보기에서 index.js 수정 후 에러 뜹니다.
1
376
3
Chapter_05 터미널, 리액트 에러
0
193
2
npx create-react-app my-app 명령어 반응없음
1
432
3
import 코드 에러
1
214
1
백틱
1
121
1





