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

MinHyung님의 프로필 이미지
MinHyung

작성한 질문수

React로 NodeBird SNS 만들기

7-8. 인피니트 스크롤링

해시태그 렌더링 오류

작성

·

150

0

해시태그 검색 시 mainPosts의 id의 undefined 에러로 인해 고생 좀 했는데요. 분명히 mainPosts의 값은 있는데 undefined뜨는게 이상해서 로그로 원인을 찾았습니다.

게시물이 적어서 스크롤이 생기지 않을 때 getInitialProps에서 요청이 가고 componentDidMount에서도 요청을 하게되는데 getInitialProps에서 요청한 응답이 오기전에 mainPosts를 건들여서 undefined가 발생하더라고요.

일단 length가 0일땐 호출하지 말게 해서 해결을 하긴 했는데 궁금한게 생겼습니다. 새로고침할 땐 서버사이드렌더링이나 링크를 통한 클라이언트렌더링이나 getInitialProps를 거치는건 같은데 서버사이드렌더링은 에러가 발생하지 않았습니다.

클라이언트렌더링은 getInitialProps의 응답을 받기전에 componentDidMount가 실행되는게 맞나요?

답변 3

1

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

아, 클라이언트의 경우에는 getInitailProps와 관련없이 react 라이프사이클이 돌아갑니다. 요청 후 화면 렌더링을 하고, 나중에 데이터가 추가되는 식이므로, 데이터가 없을 때 대비도 해주셔야 합니다.

1

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

async getInitialProps인 경우 응답을 받고 나서 componentDidMount가 실행됩니다.

0

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

이렇게 응답이 오기전에 중간에 CDM이 호출되었는데 문제없는 건가요?

getInitialProps는 강의 그대로 async 함수입니다

MinHyung님의 프로필 이미지
MinHyung

작성한 질문수

질문하기