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

1.2K
Vistas
¿Para qué sirve withRouter en react-router-dom?

A veces he visto a personas envolver sus componentes con withRouter cuando los están exportando:

 import { withRouter } from 'react-router-dom'; class Foo extends React.Component { // ... } export default withRouter(Foo);

¿Para qué es esto y cuándo debo usarlo?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Cuando incluye un componente de página principal en su aplicación, a menudo se envuelve en un componente <Route> como este:

 <Route path="/movies" component={MoviesIndex} />

Al hacer esto, el componente MoviesIndex tiene acceso a this.props.history para que pueda redirigir al usuario con this.props.history.push .

Algunos componentes (comúnmente un componente de encabezado) aparecen en cada página, por lo que no están envueltos en una <Route> :

 render() { return (<Header />); }

Esto significa que el encabezado no puede redirigir al usuario.

Para solucionar este problema, el componente de encabezado se puede envolver en una función withRouter , ya sea cuando se exporta:

 export default withRouter(Header)

Esto le da acceso al componente Header a this.props.history , lo que significa que el encabezado ahora puede redirigir al usuario.

over 4 years ago · Santiago Trujillo Denunciar

0

withRouter es un componente de orden superior que pasará la match de la ruta más cercana, la location actual y los accesorios del history al componente envuelto siempre que se represente. simplemente conecta el componente al enrutador.

No todos los componentes, especialmente los componentes compartidos, tendrán acceso a los accesorios de dicho enrutador. Dentro de sus componentes envueltos, podrá acceder a la propiedad de location y obtener más información como location.pathname o redirigir al usuario a una URL diferente usando this.props.history.push .

Aquí hay un ejemplo completo de su página de github:

 import React from "react"; import PropTypes from "prop-types"; import { withRouter } from "react-router"; // A simple component that shows the pathname of the current location class ShowTheLocation extends React.Component { static propTypes = { match: PropTypes.object.isRequired, location: PropTypes.object.isRequired, history: PropTypes.object.isRequired }; render() { const { match, location, history } = this.props; return <div>You are now at {location.pathname}</div>; } } // Create a new component that is "connected" (to borrow redux // terminology) to the router. const ShowTheLocationWithRouter = withRouter(ShowTheLocation);

Se puede encontrar más información aquí .

over 4 years ago · Santiago Trujillo Denunciar

0

El componente de orden superior withRouter le permite obtener acceso a las propiedades del objeto de history y la coincidencia de <Route> más cercana. withRouter pasará accesorios actualizados de match , location e history al componente envuelto siempre que se represente.

 import React from "react"; import PropTypes from "prop-types"; import { withRouter } from "react-router"; // A simple component that shows the pathname of the current location class ShowTheLocation extends React.Component { static propTypes = { match: PropTypes.object.isRequired, location: PropTypes.object.isRequired, history: PropTypes.object.isRequired }; render() { const { match, location, history } = this.props; return <div>You are now at {location.pathname}</div>; } } // Create a new component that is "connected" (to borrow redux // terminology) to the router. const ShowTheLocationWithRouter = withRouter(ShowTheLocation);
over 4 years ago · Santiago Trujillo 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