Skip to content
React TS실무 경험

React TS: scroll to top on every page navigation

1 min readWorkMoved from my Tistory blogRead the Korean original

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

More in Work