对于您想要使用 React 和 React Router 构建简单问卷的场景的任何快速简便的答案,您不希望用户能够修改 URL 以在任何地方浏览,而且您也不希望将历史状态推送到浏览器中,基本上阻止使用后退按钮?
示例路线可能如下所示:
questions/1
questions/2
questions/3
...so on
但是 URL 应该始终保持不变,并且历史不会改变,本质上是没有路由的单页应用程序的行为。
对于您想要使用 React 和 React Router 构建简单问卷的场景的任何快速简便的答案,您不希望用户能够修改 URL 以在任何地方浏览,而且您也不希望将历史状态推送到浏览器中,基本上阻止使用后退按钮?
示例路线可能如下所示:
questions/1
questions/2
questions/3
...so on
但是 URL 应该始终保持不变,并且历史不会改变,本质上是没有路由的单页应用程序的行为。
对于历史部分,您需要replaceWith()
在要更改路线的任何地方使用。
如果您正在使用<Link>
,您可以创建自己的版本来使用replaceWith
而不是transitionTo
- 您应该能够复制其实现并将PropTypes
require 调用替换为require('react-router/lib/PropTypes')
.
不过,我无法立即想到一种不可怕的方法来防止用户跳来跳去-大概您还希望应用程序在他们尝试从基本 URL 以外的任何内容开始时中断?如果这是你真正想要的行为,我会使用一些简单的状态来控制当前正在渲染的组件,而不是使用 React Router。