最近在玩’React’,发现
react-router-dom
跳转后页面还是在之前的位置,网上搜了一部分资料发,先大多数都是V5
的解决方案, 记录一下自己V6
的解决方案
1. 代码
项目任意处新建AutoTop.js
文件
import { useLayoutEffect } from "react";
import { useLocation } from "react-router-dom";
const AutoScorllTop = ({ children }) => {
const location = useLocation();
useLayoutEffect(() => {
document.documentElement.scrollTo(0, 0);
}, [location.pathname]);
return children;
};
export default AutoScorllTop;
2. 使用
我是直接在app.js
页面里使用的
import { BrowserRouter } from "react-router-dom";
import AutoScorllTop from '你的路径/AutoTop.js'
const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement
);
root.render(
<BrowserRouter>
<AutoScorllTop>
<App />
</AutoScorllTop>
</BrowserRouter>
)