簡體   English   中英

React Router 選項卡——保持組件掛載

[英]React Router Tabs — Keep Components Mounted

我使用 React Router 創建了選項卡,每個選項卡都有不同的路由。 但是,我想通過安裝隱藏的選項卡來保持選項卡轉換之間的選項卡狀態。 我如何實現這一目標? 每次路由切換時,React 路由器都會重新安裝每個組件。

這里已經有人問過這個問題,但是沒有得到答復

理想情況下,我會找到一個解決方案,使第一次點擊后未顯示的選項卡保持安裝狀態

我必須做更多的挖掘以確認這確實有效,但是通過閱讀 React Router 文檔,我發現有關Route組件的內容。 每次路由更改時,使用component道具都會重新安裝組件。 但是使用其他渲染方法,您可能能夠實現您想要的。 我會使用render ,但children也可以工作嗎?

這是 react-router-dom-v5 doc 在<Route/> renderchildrencomponent prop 上推薦的路由方法。 這樣我們的組件就會每次路徑匹配時重新初始化和重新安裝

 <Switch>
    <Route exact path="/">
       <Home />
    </Route>
    <Route path="/contact">
       <Contact />
     Route>
    <Route path="/about">
       <About />
    </Route>
 </Switch>

由於您(Kat)希望通過安裝隱藏的選項卡來保持選項卡轉換之間的選項卡狀態。

  • 您可以通過一次安裝所有選項卡,然后使用react-router-dompathname在選項卡之間切換來實現此目的。
const { pathname } = useLocation();
{pathname === "/"? <Home/>: null}
{pathname === "/contact"? <Contact/>: null}
{pathname === "/about"? <About/>: null}

暫無
暫無

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

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