【问题标题】:Disable history and URL state while using React Router使用 React Router 时禁用历史记录和 URL 状态
【发布时间】:2015-05-23 06:02:21
【问题描述】:

对于您想要使用 React 和 React Router 构建简单问卷调查的场景的任何快速简便的答案,您不希望用户能够修改 URL 以在任何地方浏览,并且您也不要不想将历史状态推送到浏览器中,基本上阻止使用后退按钮?

示例路线可能如下所示:

questions/1
questions/2
questions/3
...so on

但是 URL 应该始终保持不变并且历史不会改变,本质上是没有路由的单页应用程序的行为。

【问题讨论】:

  • 任何有效的解决方案?
  • 没有涉及使用 React Router 的解决方案,不幸的是在我使用它的时候,它是不可能的,所以我决定放弃。

标签: reactjs react-router


【解决方案1】:

对于历史部分,您需要在要更改路线的任何地方使用replaceWith()

如果您使用<Link>,您可以创建自己的版本,使用replaceWith 而不是transitionTo - 您应该能够使用copy its implementation 并将PropTypes require 调用替换为require('react-router/lib/PropTypes') .

我无法立即想出一种不可怕的方法来防止用户跳来跳去 - 如果他们尝试从基本 URL 以外的任何内容开始,您可能还希望应用程序中断?如果这是你真正想要的行为,我会使用一些简单的状态来控制当前正在渲染的组件,而不是使用 React Router。

【讨论】:

    猜你喜欢
    • 2017-02-04
    • 2021-08-16
    • 2021-02-12
    • 2020-03-07
    • 2016-01-05
    • 1970-01-01
    • 2017-08-03
    • 2019-08-03
    • 2017-08-17
    相关资源
    最近更新 更多