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

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

siny7177님의 프로필 이미지
siny7177

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

withrouter 관련 질문있습니다.

작성

·

164

1

좋은 강의 감사합니다. 

강의 들으면서 궁금한게 생겨서 질문드립니다.

react 첫강의 들을때 HOC auth 때문에 withrouter를 사용한것으로 알고있습니다.

이번 강의에서는 withrouter를 사용 안하시는데  그 이유가 react 부분에 auth 코드에서  return 을 할때 props를 자식 컴포넌트에 넘겨줘서 withrouter를 안쓰는 것인가요? 

아니면 다른 이유가 있다면 무엇인지 궁금합니다

답변 1

3

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요 

우선 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(자녀컴포넌트이름) 이런식으로 해주는 것입니다 ^ ^  

siny7177님의 프로필 이미지
siny7177

작성한 질문수

질문하기