강의

멘토링

커뮤니티

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

취뽀제발님의 프로필 이미지
취뽀제발

작성한 질문수

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

서버사이드렌더링 준비하기

SSR 처리 후 useSelector 질문 드립니다~!

작성

·

349

0

/post/[id] 페이지에 접근하는 상황입니다.

SSR 적용하여 LOAD_POST_REQUEST 디스패치 되어 있고,
해당 포스트 클릭할 시 <Link href={`/user/${post.User.id}`}>와 같이 링크로 처리한 상황인데,

 LOAD_POST_SUCCESS 시 draft.targetPost에 data 저장하도록 했는데 페이지에 접근해서 hydrate 후 state 확인해 보면 targetPost는 여전히 null인 상태입니다. 단순히 null이라기 보단 전체적으로 이전 상태를 갖고 있는 느낌입니다.

해당 페이지(/post/[id].js)에서 useSelector 이용하여 targetPost를 불러오고 console.log(targetPost)로 찍어봐도 null이구요 ㅜ 

근데 콘솔 확인해 보면 위의 이미지와 같이 initialStateFromGSPorGSSR 에는 원하는 targetPost의 데이터가 잘 들어가 있는데 바로 위 initialState는 undefined입니다... 

어떻게 해야 targetPost를 제대로 가져올 수 있을까요 ? ㅜ 아무리 찾아봐도 잘 모르겠네요..

마지막으로 에러 후 새로고침하거나 주소창에서 직접 /post/[id]를 입력시에는 에러 없이 잘 나옵니다.. 그나마 차이점이라고 하면 Link의 문제인지...뭔지 ㅜ 확인 부탁드립니다!

답변 1

0

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

HYDRATE가 실행되면 이전 데이터가 모두 초기화됩니다. 불러오고 싶은 데이터가 있다면 모두 getServerSideProps 내부에서 dispatch 실행하셔야 합니다.

취뽀제발님의 프로필 이미지
취뽀제발

작성한 질문수

질문하기