在 react react-router-dom 页面更改时滚动到顶部

scroll to top on react react-router-dom page change

我正在使用 react-router-dom 来实现我的 reactjs 应用程序的路由! 但是我对此有一个问题,我找不到任何在页面更改时滚动到顶部的有效解决方案。任何人都可以帮助我吗???

这是我的路由代码:

    <BrowserRouter  basename={basename}> 
          <Switch>
                    <MobilePage hasNav navType="primary" exact path={`/restaurant`} component={VendorList} />
                    <MobilePage hasNav navType="primary" path={`/restaurant/:vendorCode`} component={VendorDetails} /> 
          </Switch>
    </BrowserRouter>

添加到 VendorListVendorDetails 中的 componentDidMount() 函数 window.scrollTo(0,0)

我目前正在使用 react-router-dom v5(我发现的这些解决方案中的大多数都适用于 v4),令我惊讶的是找不到将页面加载到顶部的解决方案过渡。

解决我问题的方法是安装 react-router-scroll-top 并像这样放置包装器:

const App = () => (
  <Router>
    <ScrollToTop>
      <App/>
    </ScrollToTop>
  </Router>
)

一切都按预期进行。

安装下面的插件 https://www.npmjs.com/package/react-router-scroll-top

import ScrollToTop from 'react-router-scroll-top'

const App = () => (
<Router>
  <ScrollToTop>
     <App/>
  </ScrollToTop>
</Router>
  )
<ScrollToTop/>