You have solution in this page https://reacttraining.com/react-router/web/guides/scroll-restoration for just scrolling to top on navigation on every transition. But if you click on the previous button, the page is also at the top even if you had scrolled on the page.
I did this package because I was frustrated that the new react router (4) does not restore the scroll when I click on the back button of my browser. By default, the component execute window.scrollTo(0,0), if the url not exist in memory.
only work with react and react router v4 and v5
$ npm i -S react-router-scroll-memory
import component in your main page.
import ScrollMemory from 'react-router-scroll-memory';
<BrowserRouter> <div> <ScrollMemory /> <App /> </div> </BrowserRouter>
If you use your app inside a element, you can use props "elementID" for memorise scroll position of your element instead body scroll.