인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

반가우면반갑다고해님의 프로필 이미지
반가우면반갑다고해

작성한 질문수

React로 NodeBird SNS 만들기

3-4. redux와 react 연결하기

Component와 store 매개변수(?) 이해가 잘안갑니다.

작성

·

153

0

const NodeBird = ({ Componentstore }) => {
  return (
    <Provider store={store}>
      <Head>
        <title>NodeBird</title>
        <link
          rel="stylesheet"
          href="https://cdnjs.cloudflare.com/ajax/libs/antd/3.25.3/antd.css"
        />
      </Head>
      <AppLayout>
        <Component />
      </AppLayout>
    </Provider>
  );
};

NodeBird.propTypes = {
  Component: PropTypes.elementType,
  store: PropTypes.object
};

export default withRedux((initialStateoptions=> {
  const store = createStore(reducerinitialState);
  // 여기에다가 store 커스터마이징 할꺼.

  return store;
})(NodeBird);

```

const NodeBird = ({ Component, store }) => {} 

에서 Component, store 부분이 이해가 잘 안갑니다.

1. NodeBird는 모든 페이지들의 부모이고 모든 페이지들에게 유산을물려줍니다. 그러면 노드버드는 Component를 어디서 상속받나요? 최상위인 root 에서 받는건가요?

2. 1번과 유사한데, 노드버드는 스토어를 어디서 상속받나요?

맨 마지막 export default..... return store; < 여기서 리턴된 스토어가 노드버드의 매개변수(?)에 들어가는건가요? 콜백함수처럼요?..

긴 글이였는데 읽어주셔서 정말 감사합니다. 

답변 1

0

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

Next.js에서 _app.js의 부모로 숨겨진 컴포넌트가 몇 개 더 있습니다. 거기서 component(렌더링 될 페이지)를 넣어줍니다. _document.js(https://github.com/ZeroCho/react-nodebird/blob/master/ch8/front/pages/_document.js)를 보시면 context.renderPage 부분이 있습니다. 이런 곳에서 넣는 것도 props로 전달됩니다.

store는 NodeBird의 withRedux에 의해 들어가는 것이고요. return store한 것이 getInitialProps의 context.ctx 및 NodeBird의 props로 들어갑니다.

다양한 곳에서 context나 props에 데이터를 넣어주고 있습니다.

반가우면반갑다고해님의 프로필 이미지
반가우면반갑다고해

작성한 질문수

질문하기