Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

200
Vistas
Reaccionar el enrutamiento del dom del enrutador a ItemDetail

Estoy haciendo un proyecto personal de React.js. Estoy tratando de usar react-router-dom, pero no he podido hacerlo funcionar. Hice el BrowserRouter en App.js. Hasta allí, la aplicación funciona bien, pero no puedo hacer que el enrutamiento se redirija dinámicamente a un elemento del mapa. Traté de seguir la documentación y algunos tutoriales sin éxito. Los datos provienen de la API de Star Wars Este es el código: App.js:

 import './App.css'; import { Route, BrowserRouter as Router, Routes } from "react-router-dom"; import Home from './components/Home'; import MovieDetail from './components/MovieDetail' import Navbar from './components/Navbar'; function App() { return ( <Router> <> <Navbar /> <Routes> <Route exact path='/' element={<Home />} /> </Routes> <Routes> <Route exact path to='/:movieId' element={<MovieDetail />} /> </Routes> </> </Router> ); } export default App;

Detalle del artículo:

 import { useEffect, useState } from "react"; import { useParams } from "react-router-dom"; const MovieDetail = () => { const { movieId } = useParams(); const [result, setResult] = useState([]); const fetchData = async () => { const res = await fetch("https://www.swapi.tech/api/films/"); const json = await res.json(); setResult(json.result); } useEffect(() => { fetchData(); }, []); let movieMatch = (result.find(value) => value.properties.title == movieId) return ( <div> <h2> {result .find((value) => {value.properties.title == movieId})} </h2> </div> ); } export default MovieDetail;

ACTUALIZAR Este es un enlace a todo el código en codesand con App.js actualizado

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

De su código, asumo que está usando React Router v6 en su proyecto. Pruebe el siguiente código:

 import './App.css'; import { BrowserRouter, Routes, Route } from "react-router-dom"; import Home from './components/Home'; import MovieDetail from './components/MovieDetail' import Navbar from './components/Navbar'; function App() { return ( <BrowserRouter> <Routes> <Navbar /> <Route path='/' element={<Home />} /> <Route path=':movieId' element={<MovieDetail />} /> </Routes> </BrowserRouter> ); } export default App;

Consulte la documentación del enrutador React para obtener más detalles.

about 4 years ago · Juan Pablo Isaza Denunciar

0

si está utilizando index.js como contenedor para app.js <BrowserRouter /> or <Router /> en su caso no se usa en app.js, se usa en index.js; de lo contrario, no funcionará

index.js debería verse así: -

 import React from "react"; import ReactDOM from "react-dom"; import { BrowserRouter } from "react-router-dom"; function App() { return <h1>Hello React Router</h1>; } ReactDOM.render( <BrowserRouter> <App /> </BrowserRouter>, document.getElementById("root") );

**Por ejemplo, supongamos que tiene una ruta "/películas" y desea que cada vez que su aplicación (ruta = "/") se inicie o se cargue para ser redirigido a "/películas" ** luego envuelva la lógica de enrutamiento con *<Switch />* , use la propiedad Redirect del router dom para redirigir de "/" a "/movies" y use componente en lugar de elemento para representar el componente correspondiente además de no envolver con <Routes> </Routes> cada vez que están haciendo la ruta como la usamos en index.js

entonces app.js será: -

 import './App.css'; import { Route, BrowserRouter as Router, Routes } from "react-router-dom"; import Home from './components/Home'; import MovieDetail from './components/MovieDetail' import Navbar from './components/Navbar'; function App() { return ( <> <Navbar /> <Switch> <Route exact path='/movies' component={<Home />} /> <Route exact path to='movies/:movieId' component={<MovieDetail />} // to redirect from "/" to "/movies" <Redirect from="/" to="/students"></Redirect>
); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda