API 데이터를 가져와서 state에 저장하려는데 무한 렌더링이 발생합니다.
const [items, setItems] = useState([])
useEffect(() => {
fetch('/api/items').then(r => r.json()).then(setItems)
}, [items]) // items가 바뀌면 다시 fetch → 또 바뀜 → 무한루프API 데이터를 가져와서 state에 저장하려는데 무한 렌더링이 발생합니다.
const [items, setItems] = useState([])
useEffect(() => {
fetch('/api/items').then(r => r.json()).then(setItems)
}, [items]) // items가 바뀌면 다시 fetch → 또 바뀜 → 무한루프
댓글 2
의존성 배열에
items를 넣으면 setItems → items 변경 → useEffect 재실행 → 무한루프입니다.규칙: effect 안에서 변경하는 state를 의존성 배열에 넣지 마세요.