2017-04-07 127 views
3

似乎無法找到這麼多高質量的文檔。 React Router v4文檔包含'history'對象的信息,但聲明它是可變的,不應該改變。我看到的很多例子看起來像是「黑客」。任何洞察力將不勝感激。反應路由器V4編程方式更改路線

+0

這一點已經在這裏找到答案http://stackoverflow.com/questions/42672842/how-to-get-history-on-react-rou叔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;