Да, это переопределяет ваш макет после навигации.Причина этого заключается в том, что функция render
'как дочерний элемент' AKA ' render prop ' (это шаблон проектирования, используемый в React, который реализует response-router-dom) вызывается при навигациина этот путь.
Также - Переключатель отображает первого потомка или соответствует местоположению.
Попробуйте:
import { Router, Route } from 'react-router-dom';
import { createMemoryHistory } from 'history';
const history = createMemoryHistory();
<Router history={history}>
<Route component={MainLayout}>
<Route exact path="/foo" component={Foo} />
</Route>
<Route component={AltLayout}>
<Route exact path="/bar" component={Bar} />
<Route exact path="/bar2" component={Bar2} />
</Route>
</Router>