본문으로 바로가기
COMMUNITY모든 이야기

비동기 루프 내에서 setState 값이 최신 상태로 업데이트되지 않는 문제

빗방울 2026.10.31 08:27 1분 읽기 조회 17 · 추천 2

서버에서 받아온 배열 데이터를 루프 돌면서 하나씩 상태 값에 추가해 처리하려고 하는데, 마지막 값만 반영되고 있습니다.

코드:

const [items, setItems] = useState([]);
const data = [1, 2, 3];

const handleAdd = () => {
  data.forEach(item => {
    setItems([...items, item]);
  });
};

오류: 기대값은 [1, 2, 3]이지만, 실제 결과값은 [3]만 출력됨

시도: console.log로 찍어봐도 루프 내부에서는 이전 상태값만 계속 참조하고 있습니다.

질문: 루프 안에서 setState를 사용할 때 이전 상태를 보장받으려면 어떻게 작성해야 하나요?

모든 이야기1455

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1455개의 이야기
댓글