2016-09-27 206 views
11

我有一个案例:用户打开激活链接。用户完成激活过程后,系统会将他移动到另一个页面。我不想在浏览器上保留激活网址,并阻止用户返回激活步骤。反应路由器:更改URL并清除历史记录

我该如何得到这种情况?

感谢,

+0

最后,我可以用这些语句解决: history.replaceState({},document.title时,URL); props.router.replace(url); – user3468795

回答

6

在reactJS你应该使用browserHistory用于此目的。这照顾你的历史,你不需要自己实现这些功能。

浏览器历史记录有两种方法push()replace(),它们的功能与@fazal在他的回答中提到的相同,但用更好的方式。

所以,如果你想避免用户回到以前的状态,你需要使用browserHistory().replace

开始将它导入到你的代码: -

import {browserHistory} from 'react-router' 

用户已经激活你以下后: -

browserHistory.replace(//your new link) 
+0

嗨, 我试过这种方式,我仍然无法在浏览器上重写网址。 (我知道更改网址并不是SPA应用的常见行为。) – user3468795