Ведение истории браузера в пределах одного маршрута

0

В моем приложении есть несколько маршрутов. Внутри одного маршрута есть некоторые изменения пользовательского интерфейса. Например, когда я нажимаю кнопку, я получаю ресурсы с сервера и показываю его как список. Я хочу отметить эту точку как отдельную историю браузера, так что, когда пользователь нажимает на какой-либо следующий маршрут, я возвращаюсь непосредственно к списку вместо кнопки.

Например,

Появится меню маршрута -A>

После щелчка отображается Маршрут A → Список

Теперь, когда элемент щелкнут

Маршрут B → Отображается элемент.

Теперь, если я нажму "Back" из "Маршрута B", я хочу, чтобы вас вернули в Маршрут A со списком вместо кнопки. Как я могу это достичь?

Есть идеи?

  • 0
    Вы пробовали нажать на тот же pathname вместе с state / query ? В качестве альтернативы вы можете /page(/:showList) путь к маршруту как /page(/:showList) и использовать параметр showList .
Теги:
react-router

1 ответ

1

Я предполагаю, что ваше приложение является SPA (одностраничное приложение). Маршрутизация - это просто еще один способ поддержания состояния приложения. Поэтому я вижу два общих способа решить эту проблему:

  1. Создайте еще один подмаршрут для показа списка
  2. Внедрение пользовательского управления состоянием. В этом случае, когда вы вернетесь на свой маршрут, вы восстановите состояние. Многие люди будут использовать Redux для глобального управления государством, но вы можете настроить свою собственную инфраструктуру.

В любом случае, вам нужно указать, что он должен отображать с состоянием, отличным от значения по умолчанию.

Надеюсь, это поможет.

  • 0
    Спасибо за ответ. Создание другого маршрута, безусловно, является решением. Но я подумал, что это будет проще, может быть, что-то делать через HTML 5 History API .. Разве это не возможно?
  • 0
    Боюсь, это не сильно поможет. Вы упомянули в тегах, что вы используете реагирующий маршрутизатор, который вы, вероятно, настроили для использования HTML5 истории API в любом случае. Проблема в том, что ваша логика представления JS будет пытаться обновить DOM так, как ему указано. Так что вам нужно будет изменить инструкции, так сказать. Это имеет больше смысла?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню