首页 文章

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

提问于
浏览
2

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

示例路线可能如下所示:

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

但URL应始终保持不变,并且历史记录不会发生变化,实质上是没有路由的单页应用程序的行为 .

1 回答

  • 2

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

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

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

相关问题