Cuando incluye un componente de la página principal en su aplicación, a menudo se incluye en un <Route>
componente como este:
<Route path="/movies" component={MoviesIndex} />
Al hacer esto, el MoviesIndex
componente tiene acceso para this.props.history
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 incluidos en un <Route>
:
render() {
return (<Header />);
}
Esto significa que el encabezado no puede redirigir al usuario.
Para solucionar este problema, el componente de encabezado se puede incluir en una withRouter
función, ya sea cuando se exporta:
export default withRouter(Header)
Esto le da Header
acceso al componente this.props.history
, lo que significa que el encabezado ahora puede redirigir al usuario.
withRouter
también da acceso amatch
ylocation
. Sería bueno si la respuesta aceptada mencionara eso, ya que redirigir al usuario no es el único caso de uso dewithRouter
. De lo contrario, este es un buen auto-qna.