Lorsque vous incluez un composant de la page principale dans votre application, il est souvent enveloppé dans un fichier <Route>
composant comme celui-ci :
<Route path="/movies" component={MoviesIndex} />
En faisant cela, le MoviesIndex
a accès à this.props.history
afin qu'il puisse rediriger l'utilisateur avec this.props.history.push
.
Certains composants (généralement un composant d'en-tête) apparaissent sur toutes les pages, et ne sont donc pas enveloppés dans une balise <Route>
:
render() {
return (<Header />);
}
Cela signifie que l'en-tête ne peut pas rediriger l'utilisateur.
Pour contourner ce problème, le composant de l'en-tête peut être enveloppé dans un fichier de type withRouter
soit lorsqu'il est exporté :
export default withRouter(Header)
Cela donne le Header
l'accès des composants à this.props.history
ce qui signifie que l'en-tête peut maintenant rediriger l'utilisateur.