reactjs - 为什么 react-router-dom 滚动到顶部不起作用?
问题描述
我一直有这个问题,当我有一个很长的内容页面时,当导航到时,它会一直向下滚动,所以我需要一种方法来在每次导航时向上滚动窗口。我在谷歌上进行了研究,甚至使用了 react-router-dom 文档组件,但到目前为止没有任何效果。
我很高兴能得到一些关于如何解决这个问题的线索。
谢谢!
- ScrollToTop 组件
import { useEffect } from 'react';
import { useLocation } from 'react-router-dom';
export default function ScrollToTop() {
const { pathname } = useLocation();
useEffect(() => {
window.scrollTo(0, 0);
}, [pathname]);
return null;
}
- App.js 组件
function App() {
return (
<>
<Router>
<NavBar />
<ScrollToTop />
<Switch>
<Route exact path="/" component={MainPage} />
<Route exact path="/contracts" component={ContractPage} />
<Route exact path="/areas" component={AreasPage} />
<Route exact path="/about" component={AboutPage} />
<Route exact path="/gallery" component={GalleryPage} />
<Route exact path="/get-a-quote" component={GetAQuotePage} />
<Route
exact
path="/insulated-garden-room"
component={GardenRoomPage}
/>
<Route exact path="/erecting-fence" component={FencePage} />
<Route
exact
path="/garden-storage-shed"
component={GardenStoragePage}
/>
<Route
exact
path="/bathroom-renovation"
component={BathRenovationPage}
/>
<Route exact path="/roof-cleaning" component={RoofCleaningPage} />
<Route
exact
path="/painting-decoration"
component={PaintingDecorationPage}
/>
<Route
exact
path="/flooring-tiles-instalation"
component={FlooringTilesPage}
/>
<Route exact path="/eletical-services" component={EletricalPage} />
<Route
exact
path="/heating-plumbing"
component={HeatingPlumbingPage}
/>
<Route component={NotFound} />
</Switch>
<Footer />
</Router>
<GlobalStyles />
</>
);
}
export default App
OBS:所有路线都运行良好。
解决方案
推荐阅读
- css - 由于 Vue,IE 中缺少一些内联样式
- reactjs - 为管理区域配置 react-router-dom 的问题
- c# - 事后不能等待任务
- c# - 使用来自 HttpGet 方法的数据填充 Html.BeginForm 下拉列表
- javascript - Firebase .limit() 函数
- android - Firebase 性能未显示/列出 android 应用中使用的某些端点
- python - 如何修复添加两个函数输出,然后将组合输出实现到 Python 中的文本文件?
- ruby-on-rails - 如何在 Ruby 中将独占范围转换为包含范围?
- autohotkey - SHIFT 的 AutoHotKey 修饰符符号“+”不起作用
- javascript - 我可以让 JSON.stringify 包含值未定义的键吗?