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

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

작성한 질문수

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

해시태그 검색하기

<Link> 문제 입니다...

작성

·

248

0

<Link href=''>를 적용한 부분들은 모두 탭에 로딩바가 생기지 않습니다만 요청 성공하고, 페이지 출력까지 잘 됩니다.. 다른 질문에도 로딩바가 생성 안되는 거 같던데 이유를 모르겠어서요!

그리고 devtools로 확인했을 때 HYDRATE가 실행되면 loginDone이 꼭 false로 바뀌는 데 생각해볼 만한 이유가 있을까요?? ㅜ 

loginDone이 false로 설정 되는 부분은 initialState와 LOG_IN_REQUEST일 경우만인데... 이해가 잘 안되서 여쭤봅니다

답변 6

0

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

아 다행이네요ㅎㅎ SSR 자체에 영향을 주면 문제일 거 같아서.. 몰랐는데 감사합니다! 

0

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

아, 그렇게 HYDRATE를 커스터마이징 하셔도 됩니다. 바꾸고 싶은 것만 바꾸고 나머지는 안 바꾸도록요

0

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

아 역시 장단점이 다 있군요 ... 이거저거 찾아보고 고민해보다가 rootReducer에 case HYDRATE: 의 return 부분을 상태를 덧씌우는 식으로 변경을 해봤습니다. 제가 원하는대로 작동은 되는거 같긴 한데.. 아래 방법은 억지스러운 느낌일까요..?ㅋㅋㅋ (아 참고로 isLoggedIn은 초기에 작성한 거 변경을 안해서 그렇습니다!)

const rootReducer = (state, action) => {
switch (action.type) {
case HYDRATE:
return {
...action.payload,
user: {
...action.payload.user,
isLoggedIn: state.user.isLoggedIn,
},
};
default: {
const combinedReducer = combineReducers({
user,
postReducer,
});
return combinedReducer(state, action);
}
}
};

0

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

loginDone과 관련된 상태들도 다 서버사이드렌더링하는 수밖에 없습니다.

저는 ssr 시 상태관리가 힘들어서 그냥 리덕스 떼어버렸습니다.

0

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

아 그렇군요.. 그럼 loginDone 상태 유지 하고 싶으면 쿠키의 존재 여부 같은 걸 확인해서 추가로 바꿔주는 식으로 해야되는 건지.. 감이 안잡히네요 ㅜ

SSR 에서 요청한 action의 상태 이외의 상태는 초기화 되버린다는 게 그냥 넘어가도 되는 부분인지 잘 모르겠어서요

0

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

싱글페이지 애플리케이션이라서 로딩바가 안 생기는게 맞습니다. 예전 버전에서는 생겼는데 이제는 생기지 않습니다.

HYDRATE가 되면 서버 사이드 렌더링에서 불러오는 상태 이외에는 모두 초기 상태로 변경됩니다. 그래서 이전 상태가 유지되지 않습니다.

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

작성한 질문수

질문하기