我有一个左侧的导航栏,显示设置链接。
<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 "
。是否可以避免在路由历史记录中添加设置,或者在添加路由历史记录后将其删除?还是我可以采取一种不涉及破解历史的其他更合适的方法?