• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

<Link> 문제 입니다...

21.02.14 18:50 작성 조회수 178

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