使用React Router时禁用历史记录和URL状态

时间:2015-03-19 22:31:13

标签: reactjs react-router

您希望使用React和React路由器构建类似简单问卷的方案的任何快速简单的答案,您不希望用户能够修改URL以便在任何地方浏览,而且您也可以我想将历史状态推入浏览器,基本上阻止使用后退按钮?

示例路线可能如下所示:

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

但是URL应该始终保持不变,并且历史记录不会发生变化,实质上是没有路由的单页应用程序会表现得像。

1 个答案:

答案 0 :(得分:2)

对于历史记录部分,您需要在想要更改路线的任何位置使用replaceWith()

如果您正在使用<Link>,则可以创建自己的版本,使用replaceWith代替transitionTo - 您应该能够copy its implementation并替换PropTypes需要与require('react-router/lib/PropTypes')进行通话。

我无法立即想到一种防止用户跳转的非可怕方法 - 想象一下,如果他们尝试启动除基本网址以外的任何内容,您还希望应用程序能够中断吗?我只是使用一些简单的状态来控制当前正在呈现的组件而不是使用React Router,如果这是你真正想要的行为。