강의

멘토링

커뮤니티

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

김대현님의 프로필 이미지
김대현

작성한 질문수

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

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

getServerSideProps에서 질문드립니다.

작성

·

243

1

getServerSideProps에서 state.user.me가 없을때만 LOAD_USER_REQUEST 액션을 진행하고 싶은데요.

export const getServerSideProps = wrapper.getServerSideProps(
  async(context) => {
    const state = context.store.getState();
    if(!state.user.me) {
      context.store.dispatch({
        type: LOAD_USER_REQUEST,
      })

      context.store.dispatch(END);
      await context.store.sagaTask.toPromise();
    }
  }
});

이런식으로 조건문을 주어서 처리하고 싶은데 state가 항상 initialState 값이네요. 위의 코드 실행전에 LOAD_USER_REQUEST액션을 통해 me를 미리 채웠고 redux dev-tools에서도 me가 채워져 있는데 getState에서의 state.user.me는 왜 항상 null일까요..?ㅜ 

답변 1

1

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

getServerSideProps는 서버에서 실행됩니다. 서버에서 리덕스 스토어가 새로 생성된 후 실행되는 것이라 기존 클라이언트 스테이트에 접근할 수 없습니다.

김대현님의 프로필 이미지
김대현

작성한 질문수

질문하기