如何从浏览器历史记录堆栈中删除最后一个条目而不允许向前导航?

问题描述 投票:0回答:1

我有一个 React 应用程序,我正在其中实现不同页面之间的导航。这是我需要帮助的流程:

  • 用户从主页开始,我们将其称为页面A
  • 页面A,用户导航到子页面页面B(这将创建具有唯一ID的页面并在后台被视为编辑)。
  • B 上,单击按钮后,应该: - 在导航之前,使用唯一 ID 创建的数据将被删除。 - 将用户导航回页面 A。 - 完全删除Page B的历史记录条目,这样如果用户尝试在浏览器中后退或前进(到已删除的页面),他们不应该能够这样做,因为在这种情况下他们会看到错误.

我尝试使用 navigate(-1) 后退一步,但这仍然将 Page B 保留在前向导航堆栈中。我还尝试使用 navigate('..', { Replace: true }),但这似乎会在 Page A 的历史堆栈中创建重复条目,这让用户感到困惑。

预期解决方案:

我想有效地“弹出”最后一个历史条目(Page B),以便一旦用户导航回Page A,他们就无法使用向前导航返回到Page B。 一旦用户导航回A 页面,浏览器历史记录应该看起来从未在B 页面上。 有没有办法操纵浏览器历史记录堆栈或使用不同的方法来实现此行为? 任何见解或例子将不胜感激!

javascript reactjs navigation react-router-dom browser-history
1个回答
0
投票

© www.soinside.com 2019 - 2024. All rights reserved.