[英]Antdesign tabs react router navigation
我正在嘗試使用具有導航功能的標簽,但是當我 go 后標簽沒有改變時。 例如,我移動到 tab2,然后單擊 go 返回。 內容和活動標簽不會改變。
有人有想法嗎?
- 解決方案 -
解決方案添加到示例。 :)
defaultActiveKey 只是在初始加載時。 請改用活動密鑰。
<Tabs
activeKey={(match.params.source ? match.params.source : "")}
onChange={(key) => {
history.push(`/${key}`);
}}
tabBarGutter={10}
>
<TabPane tab="tab1" key="">
<p>TabPane1</p>
</TabPane>
<TabPane tab="tab2" key="tab2">
<p>TabPane2</p>
</TabPane>
</Tabs>
注意:由於 match.params.source 最初是未定義的,我必須在 activeKey 中添加該檢查,以便在未設置時將默認設置為“”。
您必須為<TabPane />
組件指定一個關鍵參數,因為您在 onChange 處理程序上使用它。 否則,您將在 url 中看到null
。 像這樣的東西: https://blablabla/null
因為你聲明了像<Route path={"/:source?"} component={page} exact={false} />
這樣的路線另一方面,你沒有必須在page.js
文件中指定另一個 Switch 組件,因為您在 Parent ( App.js
) 上指定了它
這是工作代碼:
page.js
<Tabs
defaultActiveKey={match.params.source}
onChange={(key) => {
history.push(`/${key}`);
}}
tabBarGutter={10}
>
<TabPane tab="tab1" key="tab1">
<p>TabPane1</p>
</TabPane>
<TabPane tab="tab2" key="tab2">
<p>TabPane2</p>
</TabPane>
</Tabs>
應用程序.js
<Router>
<Switch>
<Route path={"/:source?"} component={page} exact={false} />
</Switch>
</Router>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.