[英]How do I remember a React-Router URL parameter when navigating away and then back to a page?
我有一個使用React-Router-DOM進行哈希路由的React應用。 該應用程序具有一個帶有Home
和About
的主導航欄。 Home
內容具有一個子導航欄,其中包含A
, B
和C
導航到www.mysite.com/#/home/
,路由器默認(重定向)到www.mysite.com/#/home/A
。
當通過Home
導航鏈接從/#/about
導航到/#/home
,我希望路由器記住上一個使用的子路由。 當前,使用“ Home
導航”鏈接導航回到Home
,返回到#/home/A
/home/#/A
Home
菜單下的子導航菜單選擇B
===>渲染/#/home/B
About
==>渲染/#/about
Home
==>渲染/#/home/B
<App>
<header>
<NavLink to="/home">home</NavLink>
<NavLink to="/contact">contact</NavLink>
</header>
<section>
<Switch>
<Redirect exact from="/" to="/home/A" />
<Route path="/home">
<div>
<sub-header>
<NavLink to="/home/A">A</NavLink>
<NavLink to="/home/B">B</NavLink>
<NavLink to="/home/C">C</NavLink>
</sub-header>
<div>
... content for home
<Switch>
<Route path="/home/:id" component={ChildComponentThatUsesID}>
</Switch>
</div>
</div>
</Route>
<Route path="/about"> ... </Route>
</Switch>
</section>
</App>
我知道我將需要更改重定向,只是為了方便起見。 我也知道我將不得不將<NavLink to="/home">
更改<NavLink to="/home">
以某種方式合並一個可變屬性或狀態,該屬性或狀態將在使用子菜單鏈接之一時設置,但我不知道該怎么做關於這樣做。
我從來沒有嘗試過這種類型的東西,但是React Router的歷史記錄是“ component / props”。 請參閱此處的文檔: https : //github.com/ReactTraining/history#properties
使用react-router的內部狀態。
const location = {
pathname: '/somewhere',
state: { fromDashboard: true }
}
<Redirect to={location}/>
您可以稍后通過this.props.location.state
訪問它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.