【发布时间】:2018-01-30 06:29:00
【问题描述】:
当用户在浏览器选项卡中手动更改路线并按 Enter 键时,我遇到了一个问题。这迫使我的反应路由器导航到用户输入的状态。我想防止这种情况发生,并且只允许通过我通过在我的网站上单击按钮实现的流程进行路由。
我的某些屏幕需要只有当用户使用预期的流程浏览网站时才可用的数据。如果用户直接尝试通过手动更改 url 中的路线来导航到特定路线,那么他可能会跳过所需的流程,因此应用程序将中断。
其他情况,如果我想限制某些用户访问某些路由,但用户知道路径并在浏览器 url 中手动输入该路径,那么他将看到该屏幕但不应该。
【问题讨论】:
-
您是否还想通过在 URL 字段中键入 "www.stackoverflow.com" 来阻止他们离开您的网站? 来自 stackoverflow 或其他网站的人应该允许他们选择要访问的页面吗?请考虑不要弄乱正常浏览器导航机制的工作方式。这不可避免地会导致糟糕的用户体验。
-
@ivarni : 问题详细解释。
-
我宁愿建议需要流程中先前步骤中的任何数据的页面如果缺少该数据,则将用户重定向回流程的开始。当用户使用 F5/Ctrl+R 刷新浏览器或为页面添加书签并再次返回时,这也适用。这应该可以解决您的问题,而不必与浏览器的工作方式作斗争。
-
@ivarni 考虑过,但最终用户会觉得很烦。
-
@VishalGulati 你在使用 Redux 吗?
标签: reactjs react-router react-redux react-router-v4