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

전민우님의 프로필 이미지
전민우

작성한 질문수

React로 NodeBird SNS 만들기

질문드립니다.

작성

·

232

0

안녕하세요. 강의 잘 듣고 있습니다.

hashtag/:id 이 페이지에서 새로고침을 누르면 없는 페이지라서 404에러가 뜨는데 

혹시 이 문제는 어떻게 해결하는지 알 수 있을까요?

getInitialProps에서 context.query 값을 제가 따로 관리 해야하는지 해야 한다면 어떻게 관리하는지 알려주시면 감사하겠습니다.

답변 4

0

전민우님의 프로필 이미지
전민우
질문자

아하 답변 감사합니다!

0

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

새로고침 시에도 서버(커스텀 익스프레스)로 요청이 갑니다. 그래서 거기서 /hashtag/:tag 라우터에 걸려서 { tag: req.params.tag }로 context.query.tag로 갑니다. 그러고보니 id가 아니라 tag이네요.

0

전민우님의 프로필 이미지
전민우
질문자

네 구축했습니다. 찾아보니깐 SSR 하면서 getInitialProps 자체가 서버사이드에서만 실행되는거 같은데

새로고침하면 서버랑 클라이언트랑 분리되어서 getInitialProps를 할 수가 없으니 context.query.id 에서도 따로 가지고 올수 없고데

/hashtag/test 상태에서 test를 가지고 있는 방법이 있는지 궁금합니다. 

제가 그걸 말씀안드렸네요. Router.push({ pathname: '/hashtag', query: {tag: value} }, `/hashtag/${value}`)

이렇게 화면이 넘어간 상태에서 새로고침을 다시하면 getInitialProps도 실행되지 않고 query도 가지고 있지않아서 문제가

발생하였습니다. 이를 해결하기위한 방법이 있을까요? 

0

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

제 깃헙 소스코드(pages/user.js) 참조해보시면 될 것 같습니다. 커스텀서버(프론트엔드 익스프레스)도 구축하셨나요?

전민우님의 프로필 이미지
전민우

작성한 질문수

질문하기