Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

235
Visualizações
¿Cómo puedo establecer condicionalmente la ruta predeterminada en react-router-dom v6?

Tengo dos páginas Page1 y Page2. Necesito establecer condicionalmente uno o el otro como página de inicio en función de una condición. También necesito asegurarme de que todas las direcciones URL tengan un prefijo de identificación. Toma lo siguiente

 <Routes> <Route path={`/${id}`} element={condition ? <Page1 /> : <Page2>} /> <Route path={`/:id/page1`} element={<Page1 />} /> <Route path={`/:id/page2`} element={<Page2 />} /> <Route path="/" element={id ? <Navigate replace to={`/${id}`} /> : <Navigate replace to={`/`} />} /> } /> </Routes>

Esto establece la URL de la página de inicio en '/123' y redirige a '/123' si el usuario ingresa '/'. También tengo una condición en la primera ruta que configura dinámicamente el componente para renderizar.

Mi problema es que si la 'condición' devuelve una promesa, entonces la página 2 se configura primero y cuando la condición se resuelve cambia a la página 1. ¿Hay una mejor manera de hacer esto?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede crear un componente de ruta de diseño que represente en "/:id" y condicionalmente represente un indicador de carga o similar mientras se verifica la condición. Cuando la propiedad de la condition no está definida inicialmente, HomePageLayout muestra un indicador de carga, y cuando Promise resuelve y actualiza el estado de la condition a cualquier otra cosa que no sea undefined , se muestra un Outlet para las rutas anidadas.

Ejemplo:

 const HomePageLayout = ({ condition }) => { if (condition === undefined) { return <LoadingSpinner />; } return condition ? <Outlet /> : };

Utilice una ruta de índice para representar los Page1 de la Page2 o de la página 2. La ruta de índice se representa exactamente cuando la ruta es igual a la de su ruta principal.

 const [condition, setCondition] = useState(); // <-- initially undefined useEffect(() => { getCondition() .then(result => setCondition(!!result)); }, []); ... <Routes> <Route path="/:id" element={<HomePageLayout {...{ condition }} />}> <Route index element={condition ? <Page1 /> : <Page2>} /> <Route path="page1" element={<Page1 />} /> <Route path="page2" element={<Page2 />} /> </Route> <Route path="/" element={<Navigate replace to={id ? `/${id}` : "/"} />} /> </Routes>
about 4 years ago · Juan Pablo Isaza Relatório

0

necesita crear dos rutas diferentes con una ruta diferente y desde la página de inicio escribe la condición en la que se redirigirá la página

 Home Page <Link to={true ? '/page1' : '/page2' }/> Routes <Route path="/page1" element={<Page1 />} /> <Route path="/page2" element={<Page2 />} />
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda