In reference to the unresolved question (as a final conclusion)
I am also getting the same issue.
https://reacttraining.com/react-router/web/guides/quick-start promotes react-router-dom
Also, people find better to list down routes in one file rather inside components.
Something referred: https://github.com/ReactTraining/react-router/tree/master/packages/react-router-config
Something working (mostly):
import * as React from 'react'
import {BrowserRouter as Router, Route, Switch } from 'react-router-dom'
export const Routes = () => (
  <Router>
    <div>
      <Switch>
        <Route exact path="/login" component={Login}/>
        <MainApp path="/">
          <Route path="/list" component={List}/>
          <Route path="/settings" component={Settings}/>
        </MainApp>
        <Route path="*" component={PageNotFound}/>
      </Switch>
    </div>
  </Router>
)
Something not working:
site.com/SomeGarbagePath  shows the <MainApp> I think.
<Route path="*" component={PageNotFound}/> 
Update
/ - Home - parent of all (almost)
/List - inside home
/Settings - inside home
/Login - standalone
/Users - inside home, For now just showing itself. It has further pages.
/User/123 - inside user with /:id
/User/staticUser - inside user with static route
/garbage - not a route defined (not working as expected)
 
     
     
    