- withRouter 함수는 Higher-order Component
- 라우터에 의해서 호출된 컴포넌트가 아니어도 match, location, history 객체에 접근할 수 있도록 해준다.
참고로 history 는 match, location과 함께 전달되는 properties 중 하나로 페이지 이탈 방지할때 사용
import React from 'react';
import { withRouter } from 'react-router-dom';
const withRouterSample = ({ location, match, history }) => {
return (
<div>
<h4>location</h4>
<textarea
value={JSON.stringify(location, null, 2)}
rows={7}
readOnly={true}></textarea>
<h4>match</h4>
<textarea
value={JSON.stringify(match, null, 2)}
rows={7}
readOnly={true}></textarea>
<button onClick={() => history.push('/')}>HOME</button>
</div>
);
};
export default withRouter(withRouterSample);
- 라우팅을 하는 컴포넌트가 있고, 그 라우팅된 컴포넌트에서 다른 컴포넌트를 사용할때 사용하면 된다.
- 예를들면 도시의 목록이 있고, 그 도시 목록을 눌렀을때 아래 다른 컴포넌트가 표시될 필요가 있을때!
- 검색된 결과를 받았을때 그 결과로 화면에 뿌려줘야 하는데 다른 컴포넌트에서도 쿼리가 필요할때
'Web 개발 > React' 카테고리의 다른 글
[React] NavLink 를 이용해 현재 경로와 Link가 일치할때 Style을 주자 (+코드 예제) (0) | 2020.02.09 |
---|---|
[React] Switch를 이용해 URL 접속시 존재하지 않는 페이지 (Not Found Page) 처리 방법 (+ 코드예제) (0) | 2020.02.09 |
[React] TypeError: Cannot read property 'createElement' of undefined (0) | 2020.02.09 |
[React] 서브 라우트 (sub route) 정의하는 방법 (+코드 예제) (0) | 2020.02.09 |
[React] URL의 파라미터와 URL 쿼리 차이와 예제코드 (0) | 2020.02.09 |