react 滚动分页列表点击进入详细,然后点击回退按钮,怎么能使回来的页面保持离开前的位置和状态?

发布于 2022-09-11 14:54:27 字数 389 浏览 13 评论 0

问题描述

在(A)页面原来的列表页面向下滚动滚动到第二页,点击列表<Link to="xxx"/> 跳转到详细(B)页面,在(B)页面点击返回按钮执行this.props.history.goBack() 返回到想一个页面,无法回显到(A)页面的位置和数据。

问题分析:this.props.history.goBack()返回之前的页面会重新调用组件渲染流程,这个和浏览器原生的window.history.back(-1)不一样。

期待的结果

目前react 有没有出插件可以模拟window.history.back(-1)的返回 或者解决方案 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

远山浅 2022-09-18 14:54:27

使用这个 http://xialvjun.github.io/sta...

然后用 css 做成全屏模态框的模态框的模态框的XXX

不念旧人 2022-09-18 14:54:27
  1. 全屏弹窗,不使用路由
  2. 弹窗路由:https://reacttraining.com/react-router/web/example/modal-gallery
荆棘i 2022-09-18 14:54:27

componentWillUnmount记录一下当前scroll的位置(redux or localstorage等等)。componentDidMount读取你之前记录的这个scroll位置值

旧时浪漫 2022-09-18 14:54:27

其实现在的谷歌浏览器返回时可以记录之前滚动的位置的,但是可能兼容性比较差(你可以试试思否从列表页跳转到详情页,再返回)

如果需要更通用的方法,可以使用react-keeper来代替react-router,他可以返回的时候记录之前的位置

原理其实很简单,当你跳转的时候,那个列表页面是被隐藏了display:none,返回的时候再显示,根本不会重新渲染,所以滚动条也还在原来的位置

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文