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

174
Visualizações
react-router-dom no funciona cuando cambia la ruta

Estoy tratando de renderizar el componente Inicio y Acerca de usando react-router pero no obtengo nada. Creo que el problema en el archivo de índice con la tienda. ¿Cómo puedo arreglarlo?

Aquí hay un codesandbox en ejecución.

índice.js

 import React from "react"; import reactDom from "react-dom/client"; import App from "./App"; import Store from "./Store"; const root = reactDom.createRoot(document.getElementById("root")); root.render( <Store> <App /> </Store> );

Tienda

 import React, {createContext, useState} from 'react' import Layout from './Layout' export const Data = createContext() function Store({ children }) { const [state, setState] = useState(true) const value = {state, setState} return ( <Data.Provider value={value}> <Layout>{children}</Layout> </Data.Provider> ) } export default Store

Diseño

 import React, { useContext } from "react"; import { Data } from "./Store"; import { BrowserRouter as Router, Route, NavLink, Routes, Link, } from "react-router-dom"; function Layout({ children }) { const { state } = useContext(Data); return ( <div className="layout"> <Router> <div> <Link to="/">Home</Link> <Link to="/about">About</Link> </div> <div className={`${state ? "hide" : "show"} mobil `}> <div className="children">{children} </div> </div> </Router> </div> ); } export default Layout;

aplicación

 import React from "react"; import Layout from "./Layout"; import Home from "./Home"; import About from "./About"; import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; function App() { return ( <Layout> <Routes> <Route exact path="/" element={<Home />} /> <Route path="/About" element={<About />} /> </Routes> </Layout> ); } export default App;
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Acabo de ver su archivo Layout.js .

 function Layout({ children }) { return ( <div> <!-- Router --> <Link to="/">Home</Link> <Link to="/about">About</Link> <div>{children}</div> <!-- /Router --> </div> ); }

No puede usar <Router> porque el Layout se usa de forma recursiva e implícitamente está anidando el elemento <Router> . Es mejor usar el elemento solo una vez en su aplicación antes de que se cargue.

about 4 years ago · Juan Pablo Isaza Relatório

0

El componente de la tienda debe recibir los accesorios secundarios y pasarlos al diseño, por ejemplo:

 function Store({children}) { const [state, setState] = useState(true) const value = {state, setState} return ( <Data.Provider value={value}> <Layout>{children}</Layout> </Data.Provider> ) }
about 4 years ago · Juan Pablo Isaza Relatório

0

Tema

El código que ha compartido representa un componente de Layout dentro de otro componente de Layout . El componente de Layout está representando un Router . Es una violación invariable representar un enrutador dentro de otro enrutador.

 function Layout({ children }) { const { state } = useContext(Data); return ( <div className="layout"> <Router> // <-- nested router!! <div> <Link to="/">Home</Link> <Link to="/about">About</Link>{" "} </div> <div className={`${state ? "hide" : "show"} mobil `}> <div className="children">{children} </div> </div> </Router> </div> ); }

Tanto los componentes de la Store como de la App representan un componente de Layout y la Store representa directamente la App .

Solución

Elimine uno u otro componente de Layout de la Store o la App . Sugiero eliminarlo de Store para que Store solo proporcione el valor de contexto y no se mezcle con otros problemas de diseño de interfaz de usuario y contexto de enrutamiento. La Store debe hacer que el Provider y los children sean prop.

Ejemplo:

 function Store({ children }) { const [state, setState] = useState(true); const value = { state, setState }; return ( <Data.Provider value={value}> {children} </Data.Provider> ); }

Edite react-router-dom-not-working-whene-change-path

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