【react-router-dom】4.xになって辛い。。理解したい人のためのreact-router-dom

【react-router v4 / history/BrowserRouter】ぺージ遷移の度にscrollTo(0,0)したい。

【react-router v4 / history/BrowserRouter】ぺージ遷移の度にscrollTo(0,0)したい

SPAで遷移するページにて、
遷移元のリンクの位置がそのまま遷移先の「始まり位置」になってしまい。どのように対処すればいいか探していましたが、
なかなか見つからなかったのでこちらに書いておきます。

 

const App = () => {
  return (
    <BrowserRouter>
      <Route component={ScrollToTop} />
          ネストされた<Switch>, とか <Route>達。。
    </BrowserRouter>
  );
}

const ScrollToTop = () => {
  window.scrollTo(0, 0);
  return null;
};

このように

関数をトップレベルのRouteに渡してやることで、

その下でネストするRoute達がその挙動をとります。

めでたしめでたし