인프런 커뮤니티 질문&답변
Component와 store 매개변수(?) 이해가 잘안갑니다.
작성
·
176
0
const NodeBird = ({ Component, store }) => {
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((initialState, options) => {
const store = createStore(reducer, initialState);
// 여기에다가 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에 데이터를 넣어주고 있습니다.





