작성
·
164
답변 1
3
안녕하세요
우선 withRouter를 사용하는 이유에 대해서 생각해보면
this.props.history에 접근을 하기 위해서 입니다.
이것을 쓸수 있어야지 this.props.history.push('/') 와 같은 기능을 사용할수 있게 됩니다.
App.js에 보면
저희가 Route들을 나열해놓았죠
<Route component={LandingPage} /> 이런식으로요
이렇게 Route에 감싸져있는 컴포넌트들은 this.props.history에 자동으로 접근이 가능하답니다.
하지만 그렇지 않은 컴포넌트들 주로 자녀 컴포넌트들이 겠죠 ... LandingPage안에 쓰인 컴포넌트는 Route에 감싸져있지 않습니다.
그리기에 그 자녀컴포넌트 안에서 this.props.history를 쓰려하면 접근하지 못하기에 에러가 납니다.
이러한 문제를 해결하기위해서
export default withRouter(자녀컴포넌트이름) 이런식으로 해주는 것입니다 ^ ^