javascript - 在 react-router 2 中禁用后退按钮

标签 javascript reactjs react-router

我正在使用 react-router 2。我的路由定义为

   <Route path="/" component={App}>
       <IndexRoute component={Home}/>
       <Route path="/about" component={About}/>
       <Route path="/login" component={Login} onEnter={redirectToDashboard}/>
       <Route path="/logout" component={Logout} onEnter={logoutSession}/>
       <Route path="/dashboard" component={Dashboard} onEnter={redirectToLogin}/>
   </Route>

一切正常,但我在从仪表板页面禁用后退按钮时遇到问题。

成功登录后,我将用户重定向到仪表板页面,但是当用户单击后退按钮时,它会再次进入登录页面。当用户在仪表板页面上时,我想禁用 browser 的后退按钮。

最佳答案

你最好的选择是,当用户登录时,他/她被重定向到仪表板。如果由于某种原因用户点击后退按钮,你应该:

如果用户已登录 留在页面控制面板上

if(logged) {
  history.pushState(null, null, location.href);
  window.onpopstate = function(event) {
    history.go(1);
  };
}

将无法返回。

关于javascript - 在 react-router 2 中禁用后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36141470/

相关文章:

javascript - jquery 事件处理程序堆叠

javascript - 使用 useState() 将对象作为状态

javascript - 在 react 选择选项下拉列表中需要一个输入框

javascript - 如何在 ReactJS 中跳过某些路由的页眉和页脚?

javascript - '错误 : Unknown named module', 从动态路径加载 react-native 图像

javascript - 仅更新被单击元素的状态

javascript - OpenLayers3 中的特征动画

javascript - 仅允许输入类型编号为 0-1 之间的数字/ float

reactjs - 根据配置条目在 React 中动态导入组件

javascript - 从 Javascript 正确导航到 React 路由