2017-04-07 2 views
3

많은 양질의 문서를 찾을 수 없습니다. React Router v4 문서에는 'history'객체에 대한 정보가 있지만 변경 가능하고 변경해서는 안됨을 명시합니다. 내가 본 많은 사례는 '해킹'처럼 보입니다. 모든 통찰력은 인정 될 것이다.react router v4 프로그래밍 방식으로 경로 변경

+0

이것은 이미 여기에 답변되었습니다. http://stackoverflow.com/questions/42672842/how-to-get-history-on-react-rou ter-v4. 희망이 도움이됩니다. –

+0

@ToddChaffee 아 아아. 히스토리에 새로운 라우트를 푸는 것은 좋지만 히스토리 오브젝트의 위치 특성을 변경할 수 없으므로 신뢰하지 않는 것 같습니다. 감사! –

+0

예, 말씀하셨습니다. 히스토리 객체를 사용하여 새 경로를 푸시하는 것은 제 경험에서 올바르게 작동합니다. –

답변

0

나 자신을 반응하는 초보자로서 잠시 동안 잡아야했다. @ToddChaffee가 제공 한 링크를 통해 좋은 통찰력을 얻을 수 있지만 this 스레드는 <Router/>이 최상위 구성 요소 일 때 기록 개체가 자동으로 소품으로 전달된다는 것을 강조 표시합니다. 따라서 히스토리 오브젝트를 별도로로드하고 createBrowserHistory() 메소드를 사용하는 것보다 훨씬 간단합니다.

은 나를 위해 일한 다음 :

<Route exact path='/' render={({history}) => 
    <Home infoHandler={this.handleUserInfo} 
    imageHandler={this.handleImage} 
    history={history}/> 
}/> 

을 그리고 당신이 할 수있는 구성 요소 내부 :

this.props.history.push('/routeYouWantToGoTo'); 

는 모듈 내보내기 전에 구성 요소에 소품 유형 체킹하는 것을 잊지 마세요 :

Home.propTypes = { 
    history: React.PropTypes.object 
} 

export default Home; 
관련 문제