2

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

示例路线可能如下所示:

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

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

4

1 回答 1

2

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

如果您正在使用<Link>,您可以创建自己的版本来使用replaceWith而不是transitionTo- 您应该能够复制其实现并将PropTypesrequire 调用替换为require('react-router/lib/PropTypes').

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

于 2015-03-20T10:04:40.520 回答