删除反应路由器中的历史记录条目

时间:2020-01-17 15:30:40

标签: reactjs typescript react-router

我有一个左侧的导航栏,显示设置链接。

<Link to="/settings">
   Settings
</Link>

导航到后,设置组件随后将在内容窗格的右侧呈现一个子菜单组件。设置组件管理此子菜单的路由集合。

routes.push({
   exact: true,
   path: getPath("users"),
   resourceKey: "Users"       
}, {...

此数组中的第一个设置为子菜单上的默认选择,并显示在右侧。在子菜单中也显示为活动状态。我还使用此默认值来操纵浏览器URL,以便用户永远不会看到"/settings"这样的内容。

所以".../settings"变成".../settings/users"

if (subMenuRoutes.length > 0) {
   if (getURLPath(window.location.href, 5) === "") {
      history.push(subMenuRoutes[0].path as string);
   }
}

此时,"/settings"是最后一个位置,"/settings/users"是当前位置。当您按下“后退”按钮时,它会尝试返回到"/settings",但不可避免地会根据代码再次附加"/users "。是否可以避免在路由历史记录中添加设置,或者在添加路由历史记录后将其删除?还是我可以采取一种不涉及破解历史的其他更合适的方法?

0 个答案:

没有答案