혼자 적어보는 노트

[React] react hooks를 사용한 ScrollToTop / 페이지 이동 시 스크롤 상단으로 초기화 본문

React

[React] react hooks를 사용한 ScrollToTop / 페이지 이동 시 스크롤 상단으로 초기화

jinist 2021. 11. 25. 04:00

 

link to로 페이지를 이동하니 이전의 스크롤 위치 그대로 유지되어 이동되는 이슈가 생긴다.

 

 

클래스 컴포넌트로 만드는 방법도 있었지만

hooks를 이용하여 처리하는 방법이 더 편한 것 같아서 정리해 놓는다.

 

[ScrollToTop.js]

import { useEffect } from 'react';
import { withRouter } from 'react-router-dom';

function ScrollToTop({ history }) {
  useEffect(() => {
    const unlisten = history.listen(() => {
      window.scrollTo(0, 0);
    });
    return () => {
      unlisten();
    }
  }, []);

  return (null);
}

export default withRouter(ScrollToTop);

 

 

사용방법

<Router>
  <Fragment>
    <ScrollToTop />
    <Switch>
        <Route path="/" exact component={Home} />
    </Switch>
  </Fragment>
</Router>

 

 

참고 : https://stackoverflow.com/questions/36904185/react-router-scroll-to-top-on-every-transition

Comments