Maison > Questions et réponses > le corps du texte
P粉4589136552023-08-26 17:20:32
Oui, absolument. Pour chaque chemin d'itinéraire Routes
组件都管理着自己可以匹配的路由的“范围”。例如,如果当前的URL路径是"/messages/loremipsum"
,根Routes
组件会匹配"/messages/*"
,并正确渲染MessageRoutes
组件。然后,MessageRoutes
组件的Routes
组件会继续匹配下一个路径段。由于没有"*/loremipsum"
, vous avez besoin d'un autre itinéraire "fourre-tout" pour gérer cela.
Le problème est que le composant Routes
n'a connaissance d'aucune route descendante que ses routes peuvent restituer.
Exemple :
import { Route, Routes } from "react-router-dom"; import NotFound from "../pages/NotFound"; import MessageRoutes from "../features/messages/routes/MessageRoutes"; import Home from "../pages/Home"; export default function AppRoutes() { return ( <Routes> <Route path="/" element={<Home />} /> <Route path="/messages/*" element={<MessageRoutes />} /> <Route path="*" element={<NotFound />} /> </Routes> ); }
import { Route, Routes } from "react-router-dom"; import ProtectedRoutes from "../../../routes/ProtectedRoutes"; import MessageOverview from "../pages/MessageOverview"; import NewMessage from "../pages/NewMessage"; import NotFound from "../pages/NotFound"; export default function MessageRoutes() { return ( <Routes> <Route element={<ProtectedRoutes />}> <Route path="/" element={<MessageOverview />} /> <Route path="/new" element={<NewMessage />} /> <Route path="*" element={<NotFound />} /> </Route> </Routes> ); }
Si vous souhaitez un itinéraire « fourre-tout » distinct, vous avez besoin d'une configuration d'itinéraire distincte.
Exemple :
import { Route, Routes } from "react-router-dom"; import MessageOverview from "../pages/MessageOverview"; import NewMessage from "../pages/NewMessage"; import NotFound from "../pages/NotFound"; import Home from "../pages/Home"; export default function AppRoutes() { return ( <Routes> <Route path="/" element={<Home />} /> <Route element={<ProtectedRoutes />}> <Route path="/messages"> <Route index element={<MessageOverview />} /> <Route path="new" element={<NewMessage />} /> </Route> </Route> <Route path="*" element={<NotFound />} /> </Routes> ); }
Maintenant, lorsque le chemin de l'URL est "/messages/loremipsum"
, "/messages/loremipsum"
时,这个Routes
组件知道它正在渲染的嵌套路由,并且可以正确匹配并渲染NotFound
ce
Introuvable
. 🎜