[英]React router dom is not rendering a component
這是我的代碼
function App() {
return (
<div className="app">
<BrowserRouter>
<Header></Header>
<Routes>
<Route path='/' exact element={<Home />} />
<Route path='/movie/:imdbID' element={<MovieDetails />} />
<Route element={<PageNotFound />} />
</Routes>
<Footer />
</BrowserRouter>
</div>
);
}
我想要的是當我輸入無效的PageNotFound
時顯示 PageNotFound。 但它永遠不會出現。 我嘗試將它放在頂部,在<Routes>
之后,但結果相同。
您可以將*
添加到路徑中,它將呈現。
function App() {
return (
<div className="app">
<BrowserRouter>
<Header></Header>
<Routes>
<Route path='/' exact element={<Home />} />
<Route path='/movie/:imdbID' element={<MovieDetails />} />
<Route exact path='*' element={<PageNotFound />} />
</Routes>
<Footer />
</BrowserRouter>
</div>
);
}
react-router-dom@6
中的路由順序無關緊要,因為路由現在使用路由路徑排名系統來匹配最合適的路徑。 路線現在也總是完全匹配,因此不再有任何exact
道具。
匹配路徑的Route
組件仍然需要一個path
道具。 指定通配符"*"
路徑以匹配任何更具體的路徑不匹配的任何內容。
<Route path="*" element={<PageNotFound />} />
// use it in this way it will work
function App() {
return (
<div className="app">
<BrowserRouter>
<Header></Header>
<Routes>
<Route path='*' element={<PageNotFound />} />
<Route path='/' exact element={<Home />} />
<Route path='/movie/:imdbID' element={<MovieDetails />} />
</Routes>
<Footer />
</BrowserRouter>
</div>
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.