기존 PokemonList의 로딩 상태를 해당 컴포넌트 내에서 처리하는 게 아닌, 컴포넌트에서는 성공한 사례만 남기고 로딩이나 에러는 외부로 위임하기 위해 분리작업 중에 suspense를 사용하는데 도저히 작동하지 않는다...
새벽 4시가 넘어서야 원인을 찾았다(하루 종일 구글링만...)
<Suspense>의 동작시점
Suspense는 컴포넌트 렌더링 시점에 작동하는데, useEffect는 컴포넌트 마운트 시점에 동작한다. 때문에 useEffect 내에서 fetch가 이미 다 이루어졌기 때문에 Suspense가 이를 감지하지 못했던 것이었다. 드디어 원인을 알았으니 내일은 해결방법을 모색해서 꼭 해결되면 좋겠다. 더불어 공부하면 할수록 React 생명주기에 대한 공부가 더 필요하단걸 절실히 체감중인데, 최종 프로젝트 전에 시간 내서 해당 부분 다시 한 번 되짚어 봐야겠다.
✨ 내일 할 일 ✨
1. Suspense 처리
2. ErrorBoundary 공부해보기
3. PokemonList에 무한 스크롤 적용
4. 상세페이지마다 다른 metadata 추가하기
5. PokemonList 캐싱처리
'TIL' 카테고리의 다른 글
[2024.07.05] Next.js 14의 loading.tsx와 suspense (0) | 2024.07.08 |
---|---|
[2024.07.04] Suspense 수난기 (0) | 2024.07.05 |
[2024.07.01] next.js 개인과제 트러블슈팅_외부 이미지 사용 (0) | 2024.07.02 |
[2024.06.28] next.js 공부 (0) | 2024.06.28 |
[2024.06.27] 타입스크립트 개인과제 완성 (0) | 2024.06.28 |