Это контекст api 'magic'.
<BrowserRouter/>
делает <Router/>
:
class BrowserRouter extends React.Component {
history = createHistory(this.props);
render() {
return <Router history={this.history} children={this.props.children} />;
}
}
<Router/>
делает <RouterContext.Provider/>
:
<RouterContext.Provider
children={this.props.children || null}
value={{
history: this.props.history,
<Route/>
использует <RouterContext.Consumer>
для предоставления доступа к данным от провайдера.
Использование контекста api позволяет предоставлять данные / методы на многих уровнях вниз по дереву без необходимости явной передачи реквизита (на каждом уровне). Вы можете прочитать больше об этом на документах или искать учебники.