인프런 커뮤니티 질문&답변
getServerSideProps 관련 질문입니다.
작성
·
184
0
로그인 이 완료되면
Router.push('/');
메인화면으로 이동합니다
메인화면에서는 getServerSideProps로 유저 정보를 가져옵니다.
export const getServerSideProps = wrapper.getServerSideProps(async (context) => {
const cookie = context.req ? context.req.headers.cookie : '';
if (context.req && cookie) {
axios.defaults.headers.Cookie = cookie;
}
context.store.dispatch({
type: LOAD_MY_INFO_REQUEST,
});
context.store.dispatch(END);
await context.store.sagaTask.toPromise();
});
그 다음 useEffect에서 myInformation을 찍어보면 로그가 2번 찍힙니다.
useEffect(() => {
console.log(myInformation);
}, [myInformation]);
로그 : 
Router.push로 이동한것은 로그가 2번찍히고
URL을 직접 입력하면 정상적으로 로그가 한번 찍힙니다.
이 경우 어떻게 해결을 해야할까요?
답변 1
0
제로초(조현영)
지식공유자
호출되는 이유는 간단합니다. myInfo가 바뀌어서 그렇습니다. 컴포넌트 로딩 시 한 번 찍히고 바뀐 후에 한 번 더 찍히는 겁니다. 모양이 동일하다고 생각할 수 있지만 객체가 다른 객체라서 다르게 찍히는 겁니다. hydrate 때문에 어쩔 수 없을겁니다.




