dime cómo en la versión 6 de la ruta: pasar varios valores a la ruta en la versión 5, esto podría hacerse a través de una matriz
<Routes> {token ? <Route path={'chat'} element={<Chat/>}/> : <Route path={'/'} element={<Login/>}/>} </Routes>En react-router-dom v6, la propiedad de Route del componente de path toma solo un valor de ruta de cadena única, no una matriz como lo hicieron las versiones anteriores.
declare function Route( props: RouteProps ): React.ReactElement | null; interface RouteProps { caseSensitive?: boolean; children?: React.ReactNode; element?: React.ReactElement | null; index?: boolean; path?: string; // <-- string type only }
Deberá renderizar rutas individuales para cada ruta.
Ejemplo:
<Route path='/' element={<Login />} /> <Route path='/home' element={<Login />} /> <Route path='/login' element={<Login />} /> O abstraiga esta utilidad en una función ( ¡no en un componente! ). Debe ser una llamada de función, ya que solo los componentes Route o React.Fragment son elementos secundarios válidos del componente Routes .
const renderPaths = (paths, Element) => paths.map((path) => <Route key={path} path={path} element={Element} />);...
<Routes> {renderPaths(["/", "/home", "/login"], <Login />)} </Routes>