【问题标题】:Detect if route was entered via browser back button using flow router使用流路由器检测是否通过浏览器后退按钮输入了路由
【发布时间】:2023-04-05 20:52:04
【问题描述】:

我用 FlowRouter 作为路由器创建了一个应用程序。

我有一个 pin 保护屏幕,当用户尝试输入“受保护的路线”时,他们会被重定向到该屏幕。然后,这会要求输入 pin 并将用户转发到“受保护的路线”模板。

向前移动一切正常,但是当用户单击后退按钮时,当然会显示引脚保护屏幕,并且需要再次单击后退按钮才能返回到先前的状态。我需要在按回时跳过或忽略引脚保护屏幕。

我已经想到了几个解决方案,但在尝试实施它们时却力不从心。

可能的解决方案

  1. 理想情况下,我希望在不推送历史状态的情况下加载“引脚保护”重定向。这意味着用户开始的屏幕将在单击返回时加载。

  2. 如果这不起作用或不可能,我需要找到一种方法来确定用户在离开当前路线时是否点击了返回。

如果其他人遇到类似的事情并有解决方案,我将非常感谢一些帮助。谢谢

【问题讨论】:

  • 与此相关的一些事情是用户输入的 pin 保持有效多长时间?那么,用户是否必须每次或仅在一段时间不活动或某事后输入引脚。也许您可以包含一个 pinEntered 变量,这将在路由中进行检查。

标签: javascript meteor web-applications routing flow-router


【解决方案1】:

我遇到过类似的事情。

选项 1:您可以创建一个 pinEntered 布尔变量,当用户成功输入 pin 时,该变量将切换为 true。然后只需在您的路由逻辑中检查此真实性。如果 var 的计算结果为 true,那么您可以添加一个条件,当按下后退按钮时它会完全跳过该页面。

  • 在路由中为受保护页面有条件地设置此 var
  • 在后退按钮事件中检查其值

【讨论】:

  • 很高兴为您提供帮助
猜你喜欢
  • 2012-05-01
  • 2018-12-05
  • 2016-06-09
  • 2012-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多