<BrowserRouter>

This is a <Router> that uses the HTML5 history API (pushState, replaceState and the popstate event) to keep your UI in sync with the URL.


RESETRUNFULL
<BrowserRouter
  basename={optionalString}
                         forceRefresh={optionalBool}
                         getUserConfirmation={optionalFunc}
                         keyLength={optionalNumber} >
  <App /></BrowserRouter>

Your web server needs to serve the same page at all URLs that are managed client-side by React Router.

BrowserRouter ignores the history prop as it handles the history automatically for you. If you need access to the history outside of a react component, then using Router should be fine. You can access history via the useHistory hook: 

let history = useHistory(); 

to perform history.push() for BrowserRouter.