我試圖弄清楚為什么使用 React-router-dom 的 Link and Route 傳遞引數不能正常作業。我的路線是這樣配置的:
應用程式.tsx
<Routes>
<Route path="/:id" element={<Home />} />
<Route path="/search" element={<Search />} />
</Routes>
Home使用默認的初始 ID 呈現資料,我在Search組件中使用Link發送一個 id 引數以使用這個不同的 id 在Home中呈現資料,這樣:
搜索.tsx
<Link to={`../${idParam}`}>
<li>
Some Link
</li>
</Link>
我的期望:當 URL 指向“/”時,應該呈現默認的Home組件。添加引數時, Home應該接收此引數并使用發送的 id 呈現。
但是,目前Home僅在提供 id 作為引數時才會呈現(例如:'/1234')。當導航到'/'時,React 會回應'No routes match location "/" '
感謝任何幫助澄清我的設定有什么問題,謝謝!
uj5u.com熱心網友回復:
現在路由默認匹配精確路徑。直到 v5,我們可以通過使用問號符號(?)來宣告一個可選引數。但不幸的是,它在 v6 中不再可用。Ref - issues 現在,您可以在父路由下宣告子路由,而不是可選引數。在App.tsx中使用以下代碼
<Routes>
<Route path="/">
<Route path=":id" element={<Home />} />
<Route path="" element={<Home />} />
</Route>
<Route path="/search" element={<Search />} />
</Routes>
還將 Search.tsx中的代碼更改為
<Link to={`/${idParam}`}>
<li>
Some Link
</li>
</Link>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/419752.html
標籤:
