react跳转返回到原来位置
时间: 2023-08-18 11:05:18 浏览: 126
如果你在 React 中使用 React Router 实现页面跳转,可以使用 `history` 对象来控制浏览器的历史记录和页面跳转,从而实现返回到原来的位置。
具体来说,你可以在跳转前记录当前页面的位置信息,然后在返回时使用 `history.go()` 方法返回到该位置。示例代码如下:
```jsx
import React from 'react';
import { useHistory } from 'react-router-dom';
function MyComponent() {
const history = useHistory();
const handleJump = () => {
// 记录当前页面的位置信息
const scrollY = window.scrollY;
history.push('/path/to/new/page', { scrollY });
};
const handleBack = () => {
// 获取之前记录的位置信息并返回
const location = history.location.state;
if (location && location.scrollY) {
window.scrollTo(0, location.scrollY);
}
history.go(-1);
};
return (
<div>
<button onClick={handleJump}>跳转到新页面</button>
<button onClick={handleBack}>返回</button>
</div>
);
}
```
在跳转时,我们使用 `history.push()` 方法将当前的位置信息作为第二个参数传递给新页面。在返回时,我们使用 `history.go(-1)` 方法返回上一个页面,并获取之前记录的位置信息进行页面滚动。
阅读全文