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

Tzv*_*lev 5 javascript reactjs react-router-v4

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

Vin*_*our 5

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

您可以在这里找到一些 403 页面示例。

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