React TS: scroll to top on every page navigation
Create ScrollToTop.tsx
js
import { useEffect } from 'react';
import { useLocation } from 'react-router-dom';
const ScrollToTop = () => {
const { pathname } = useLocation();
useEffect(() => {
window.scrollTo(0, 0);
}, [pathname]);
return null;
};
export default ScrollToTop;Then insert it in main.tsx, the top-level component, so that it wraps the page components, and you're done.
tsx
import ScrollToTop from './shared/ScrollToTop';
ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
<React.StrictMode>
<BrowserRouter>
<LocalizationProvider dateAdapter={AdapterDateFns}>
<QueryClientProvider client={queryClient}>
<ScrollToTop />
<App />
</QueryClientProvider>
</LocalizationProvider>
</BrowserRouter>
</React.StrictMode>
);- #React
- #Scroll To Top
- #TypeScript
- #every page
- #top of page