반응형
Too many re-renders. React limits the number of renders to prevent an infinite loop.
react의 한계에 도달할 정도로 리렌더링이 너무 많이 되었다는 에러이다. 주로 잘못된 setState 사용으로 발생한다. React 컴포넌트 내에서는 항상 조건문이나 이벤트 핸들러 안에서만 setState를 사용해야 한다. 만약 setState를 컴포넌트의 바디에서 직접 호출하면 컴포넌트가 렌더링될 때마다 state가 변경되어 무한 루프에 빠질 수 있다.
리액트 컴포넌트 리렌더링 조건
too many re-renders의 이유를 알기 위해서는 리액트가 컴포넌트를 언제 리렌더링 시키는지 알아야 한다.
1. props 변화
2. state 변화
3. 부모요소가 리렌더링 될 때
이번 상황은 2번의 상황이 무한반복되어서 나타나는 에러였다.
에러 핸들링 방법
아래 코드는 상황은 Too many rerenders에러가 나타날때의 상황이다.
setState를 컴포넌트 바디에 직접 호출한 코드이다.
- setState로 인해 state가 변화되면 컴포넌트가 리렌더링 된다.
- 컴포넌트가 리렌더링 되면서 또다시 setState가 실행된다.
- 반복하면서 Too many rerenders
- setState를 useEffect안에 넣어주어서 렌더링 후 한번만 실행되게 해준다.
참고링크
해시태그,댓글창 계속 수정,보완했다.
댓글수정이 생각보다 어렵다.
서버가 완성되기전에 빨리 완성해놓아야겠다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
반응형
'프로젝트 > 코드스테이츠 - 4주프로젝트' 카테고리의 다른 글
댓글버그수정, recoil로 비동기state사용 (0) | 2021.12.07 |
---|---|
댓글작성시 엔터로 작성하면 두번째 렌더링인 '\n'이 작성되는 버그 (+14,+138 (0) | 2021.12.05 |
새로고침하면 지도가 하얗게 되는 버그 ( +12,+136 (0) | 2021.12.04 |
관심사분리에따른 리팩토링, 이미지업로드, 버튼css, top버튼 만든날 ( +11,+135 (0) | 2021.12.03 |
새로고침하면 카카오 지도가 하얗게 되는 이유:geolocation으로 좌표를 받아오기 전에 지도가 렌더링되기 때문 (0) | 2021.12.02 |