Удалить запись истории в реагирующем роутере - PullRequest
0 голосов
/ 17 января 2020

У меня есть навигация слева, которая показывает ссылку на настройки.

<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 " снова в соответствии с кодом. Можно ли избежать добавления настроек в историю маршрутизации или удалить их после добавления? Или есть другой, более подходящий подход, который я могу использовать, не затрагивая историю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...