reactjs - 我如何在反应 js 中保持滚动位置和状态的同时回到历史记录
解决方案
image-view 组件绘制在搜索结果上,基本上覆盖了整个屏幕。关闭它后,您会再次看到隐藏在其下方的搜索结果。
/myUrl
要使其在浏览器上正常工作,您可以在单击图像时在 url 中推送查询参数(假设它是)
props.history.push({
pathname: props.match.path,
search: `?galleryView=${imageId}`
});
这将更/myUrl
改为/myUrl/?galleryView=123
.
当点击浏览器返回时,它会返回到以前的 url 即/myUrl
. 你需要关闭画廊覆盖。
为此,componentDidUpdate
您可以在组件的方法中检查是否props.match.params
已更改以及是否galleryView
删除了查询参数,然后关闭图库覆盖。
if(prevProps.match.params.galleryView && !this.props.match.params.galleryView) {
this.closeGalleryOverlay();
}
当用户直接访问此 url 时,您还需要处理这种情况/myUrl/?galleryView=123
,基本上您必须打开画廊覆盖。
推荐阅读
- docker - 如何允许 DHCP 服务器始终为 docker 容器分配相同的 IP 地址
- react-native - 像 Lime 和 Uber 这样的公司使用哪种地理定位服务可以如此准确地了解我的位置?
- java - 没有字符串参数构造函数/工厂方法
- python - 如何检查 tableau online 中的仪表板是否使用 tableau api 刷新
- python - 格式化字典Python中多个numpy数组的打印语句
- c++ - 在范围内找不到 C++ TEST_CASE
- java - 在 while 循环结束后 TextView 更新
- c++ - bison 和 avr-g++ 中双倍幂的精度
- arrays - 在c中的冒泡排序中获得不同的输出
- javascript - 在单击按钮之前不要加载 JavaScript 标记