使用BrowserRouter,如何在注销时清除历史记录

时间:2017-10-15 20:39:06

标签: reactjs react-router-v4

现在我总是使用history.replace,它永远不会在历史堆栈上推送任何东西。我这样做是因为如果我推送然后注销,我的应用程序允许使用浏览器后退箭头返回上一个路线,我不希望这样。我如何操纵历史记录,以便在按下注销时,我在历史堆栈中没有任何内容可以返回。

1 个答案:

答案 0 :(得分:1)

你不能用react-router那样做,因为你不应该这样做。如果用户注销并返回到他/她不应该看到的页面,那么习惯就是显示403错误页面。您可以显示一条消息,指出用户没有访问该页面的权限。这是大多数网站正在做的事情,因为删除浏览器历史记录是一个糟糕的用户体验。

您可以找到一些403页面示例here

如果由于某种原因您确实要清除历史记录,则可以继续使用.replace,但如果用户仍然登录并想要返回,则他/她将无法使用。您还可以使用您的站点URL打开一个新选项卡并关闭当前URL,但我不建议您这样做。