使用流路由器检测是否通过浏览器后退按钮输入了路由

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用流路由器检测是否通过浏览器后退按钮输入了路由相关的知识,希望对你有一定的参考价值。

我使用带有FlowRouter作为路由器的meteorjs创建了一个应用程序。

我有一个针保护屏幕,用户在尝试进入“受保护路线”时会被重定向到该屏幕。然后,这会要求一个引脚并将用户转发到“受保护路由”模板。

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

我已经想到了几个解决方案但是在尝试实现它们时却没有达到目的。

可能的解决方案

  1. 理想情况下,我希望“引脚保护”重定向加载而不会推送历史状态。这将意味着用户启动的屏幕会在单击后加载。
  2. 如果这不起作用或不可行,我需要找到一种方法来确定用户在离开当前路线时是否点回了。

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

答案

我遇到过类似的事情。

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

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

以上是关于使用流路由器检测是否通过浏览器后退按钮输入了路由的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带有路由的浏览器后退按钮返回组件?

在浏览器的后退按钮上反应路由器历史记录

Flutter Web 中的路由有意外行为

使用浏览器后退按钮时如何强制重新加载页面?

如何检测浏览器后退按钮事件 - 跨浏览器

骨干路由器获取后退按钮的历史长度