用react 和react-router 实现的一个列表页,点击列表页的其中一项,进入详情页。
这个时候如果点击详情页的返回按钮(或者用户用浏览器后退),后退到列表页,由于react会重新装载页面,所以页面又会回到第一次进入的状态,而不会保存滚动条,
请教一下,如何保存滚动条呢。
用react 和react-router 实现的一个列表页,点击列表页的其中一项,进入详情页。
这个时候如果点击详情页的返回按钮(或者用户用浏览器后退),后退到列表页,由于react会重新装载页面,所以页面又会回到第一次进入的状态,而不会保存滚动条,
请教一下,如何保存滚动条呢。
Route 没有匹配对应 path 时会卸载掉对应组件,在重新 match 时重新挂载,造成刷新的情况
研究了一下 route 的源码,发现可以从其 children prop 入手,手动控制 match 在两种状态下组件的渲染规则,用“隐藏组件”替代“卸载组件”,就可以保留全部的数据和交互状态,整理成了轮子,增加了两个自定义的生命周期 didCache didRecover
1 回答1.7k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读
1 回答1.6k 阅读✓ 已解决
"现实在那个页面"是个什么鬼?
如果是保持
scroll position
的话,我猜已经修好了吧,看这:issue-2095,似乎和你是差不多的问题