[React] React에서 라우팅되는 컴포넌트에 props 전달하기 (react-router)
2021. 5. 11. 16:05ㆍFront-end/React
728x90
반응형
Route 컴포넌트의 props
- path : 라우팅할 컴포넌트의 URL
- component : path props에 지정한 URL 클릭 시 렌더링 할 컴포넌트
이 외에도 Route 컴포넌트는 기본적으로 history, location, match 등의 props를 가진다.
(다른 컴포넌트에서 Link를 이용해서 해당 경로로 넘어왔을 경우 그 때 props를 전달하려면 <Link to = {{pathname: , state : {}}}></Link> 이렇게 state를 통해서 props를 전달하면 되고 이 때 전달한 props는 전달받은 컴포넌트에서 location.state안에 있다.
라우팅 되는 컴포넌트에 props 전달하기
Route 컴포넌트에 의해 렌더링되는 컴포넌트에 props를 전달해야한다면 render props를 사용하여 라우팅되는 컴포넌트에 props를 전달한다. 이 때 component props는 사용할 필요가 없다.
<Route
path="/sport"
render={() => <Sport youtube={youtube} />}
/>
단 위와 같이 작성하게 되면 Sport 컴포넌트는 라우팅 관련 props인 history, location, match 등이 사라지게 되므로 이를 방지하기 위해서 스프레드 연산자를 이용하여 props를 전달해야 한다.
<Route
path="/sport"
render={(props) => <Sport youtube={youtube} {...props} />}
/>
출처 및 참고
728x90
반응형
'Front-end > React' 카테고리의 다른 글
[React] react-router에서 render 이용해서 컴포넌트 보여주기 (0) | 2021.05.13 |
---|---|
[React]라우터가 아닌 컴포넌트에서 location, match, history 사용하기 - withRouter (0) | 2021.05.12 |
[React] 배열에 항목 수정하기 (0) | 2021.04.19 |
[React] 배열에 항목 제거하기 (0) | 2021.04.19 |
[React] 배열에 항목 추가하기 (0) | 2021.04.19 |