Есть несколько страниц, которые помещены в некий layout. Layout представляет из себя шапку, контент и навигацию.
Layout
class MainLayout extends React.Component {
render () {
return (
<div className="l-main">
<div className="l-main__header">
<Header/>
</div>
<div className="l-main__content">
{this.props.children}
</div>
<div className="l-footer">
<Navigation/>
</div>
</div>
);
}
}
Настройка роутинга
class Routes extends Component {
render () {
return (
<Router history={history}>
<Route path='/' component={Application}>
<Route component={MainLayout}>
<Route path='index' component={IndexPage}/>
<Route path='main' component={MainPage}/>
<Route path='group' component={GroupPage}/>
</Route>
</Route>
</Router>
);
}
}
Внешний вид навигации не меняется, но в зависимости от страницы, обработчики у кнопок навигации должны меняться. В частности, это кнопки "Далее" и "Назад". Т.е. грубо говоря находясь на странице GroupPage, моя кнопка Назад должна обрабатывать событие и возвращать меня на страницу MainPage, а на странице MainPage эта же кнопка назад, должна обрабатывать другие событие и возвращать меня на страницу IndexPage. Как это сделать с текущей структурой?
Можно конечно поместить layout внутрь страниц и там прокидывать через props необходимые обработчики нажатия на кнопки навигации, но мне кажется это неким костылем. Или это нормальная практика?