簡體   English   中英

路由器v4以編程方式改變路由

[英]react router v4 programmatically change route

似乎無法找到很多關於此的質量文檔。 React Router v4文檔包含“歷史”對象的信息,但聲明它是可變的,不應更改。 我見過的很多例子看起來像'黑客'。 任何見解將不勝感激。

作為一個反應新手,我不得不一直在努力解決這個問題。 雖然@ToddChaffee提供的鏈接為您提供了很好的洞察力,但線程強調,當您將<Router/>作為頂級組件時,歷史對象會自動作為prop傳遞。 這使得它比分別加載歷史對象和使用createBrowserHistory()方法簡單得多。

以下對我有用:

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

然后在組件內部,您可以:

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

在導出模塊之前,不要忘記對組件中的prop進行類型檢查:

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

export default Home;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM