강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

DDU님의 프로필 이미지
DDU

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

loading의 상태 변화에 따라 컴포넌트 렌더링시 무한렌더링이 발생합니다.

해결된 질문

작성

·

443

0

안녕하세요. 도움을 요청할 데가 없어서 혹시 원인을 알고 계실까하여 글을 작성합니다.

우선 nodebirdSNS 가 아닌 개인 프로젝트에서 발생한 문제라는 점 양해 부탁드립니다.

공공API를 사용하여 데이터를 불러오기 위해 Redux Toolkit 을 사용하여 extraReducers로
pending, fulfilled, rejected 일 때 각각 loading의 상태를 변경시켜준 후
loading이 true일 때는 <Loader /> 컴포넌트를, false 일때는 데이터를 그려줄 컴포넌트가 열리도록 코드를 짰습니다.

pending 일 때, loading = true
fulfilled 일 때, loading = false

값이 잘 들어갔고 데이터도 잘 받아와지는데..
문제는 이렇게 loading 을 보여주려고만 하면 무한렌더링에 걸려버립니다...ㅠ ㅠ
분명 fulfilled일 때 false로 변경되었는데도 말이죠... 삼항연산자를 제외하고 실행시켜보면 원하는 대로 데이터를 불러올 때 딱 한번만 렌더링이 되는 것을 확인했습니다. 값은 잘 들어가놓고 왜 로딩의 값에 따라 컴포넌트를 보여주려고만 하면 무한렌더링에 걸리는 지 뭐가 문제인 건지 조금만 알려주시면 정말 감사할 것 같습니다 ㅠㅠ 아무리 찾아봐도 비슷한 케이스를 찾지 못했고, 많은 블로그와 유투브 영상을 참고해도 원인을 알 수가 없었습니다..

[삼항연산자 추가 시]

[삼항연산자 제거시]

해당 코드는 이렇습니다.

[API]

[Reducer]

[Component]

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

이거 리스트가 없어졌다가 나타나서 새로 렌더링되면서 겟쉘터데이터가 재호출되는 겁니다.

DDU님의 프로필 이미지
DDU
질문자

감사합니다 쌤 ㅠㅠ

DDU님의 프로필 이미지
DDU

작성한 질문수

질문하기