Когда вы включаете компонент главной страницы в свое приложение, он часто заключен в компонент <Route>
, например:
<Route path="/movies" component={MoviesIndex} />
При этом компонент MoviesIndex
получает доступ к this.props.history
так что он может перенаправить пользователя с помощью this.props.history.push
.
Некоторые компоненты (обычно компонент заголовка) появляются на каждой странице, поэтому они не заключаются в <Route>
:
render() {
return (<Header />);
}
Это означает, что заголовок не может перенаправить пользователя.
Чтобы обойти эту проблему, компонент заголовка может быть заключен в функцию withRouter
, либо при экспорте:
export default withRouter(Header)
Это дает компоненту Header
доступ к this.props.history
, что означает, что заголовок теперь может перенаправлять пользователя.