您希望使用React和React路由器构建类似简单问卷的方案的任何快速简单的答案,您不希望用户能够修改URL以便在任何地方浏览,而且您也可以我想将历史状态推入浏览器,基本上阻止使用后退按钮?
示例路线可能如下所示:
questions/1
questions/2
questions/3
...so on
但是URL应该始终保持不变,并且历史记录不会发生变化,实质上是没有路由的单页应用程序会表现得像。
答案 0 :(得分:2)
对于历史记录部分,您需要在想要更改路线的任何位置使用replaceWith()
。
如果您正在使用<Link>
,则可以创建自己的版本,使用replaceWith
代替transitionTo
- 您应该能够copy its implementation并替换PropTypes
需要与require('react-router/lib/PropTypes')
进行通话。
我无法立即想到一种防止用户跳转的非可怕方法 - 想象一下,如果他们尝试启动除基本网址以外的任何内容,您还希望应用程序能够中断吗?我只是使用一些简单的状态来控制当前正在呈现的组件而不是使用React Router,如果这是你真正想要的行为。