【发布时间】:2018-11-07 13:40:04
【问题描述】:
我有一个应用程序,您可以通过各种方式(搜索、按类别向下钻取等)找到相册列表。从相册中,您单击打开单张照片并使用左/右箭头以及各种编辑工具对其进行迭代。每个迭代/工具操作都会执行 history.push() 以将路由添加到路由器历史记录。我正在尝试实现一个按钮,该按钮将在您开始查看单张照片之前返回到历史记录中的确切位置。为此,我想将历史堆栈向后移动到历史匹配多个模式中的 1 个的点,然后执行 history.go(-14) (或其他)跳回开始整个过程的路线链。
我一直在搜索 React 路由器代码以及 HTML5 History 对象,但我没有看到任何直接访问历史堆栈的方法,因此我可以将其返回。我宁愿不依赖于让每个单独的照片动作将它们的路径推到一个单独的地方,因为这会使它变得脆弱(每个照片动作都是由不同的开发人员构建的,并且将来添加新动作需要以前的知识来记住这样做)。
我无法转到硬编码路径,因为它会被推到历史堆栈的顶部,并且点击返回箭头只会将您返回到最后一个单独的照片页面,而不是生成专辑列表的搜索页面第一名。
关于访问历史堆栈有什么建议吗?
【问题讨论】:
-
有点晚了,但似乎你可以只使用
replace来代替push进行内部导航,这样它就不会在历史记录中生成新条目并且“goBack”将呈现最后一条“推送”路线。
标签: html reactjs react-router browser-history html5-history