Как правильнее всего использовать для приложения с Epic?
ciricc opened this issue · 2 comments
Пробовал оборачивать Root в RouterContext.Provider, но тогда Epic не видит activeStory. Хотелось бы использовать без передачи каждому комопненту конкретного роута в пропсах, а использовать useLocation и useRouter, так как это мне показалось наиболее правильным решением.
Я вижу это так: для кажого таба свой роутер, и каждый таб имеет свою историю перемещений, но пока так не получилось сделать.
UPD:
Попробовал делать через собственный хук для каждого роутера отдельно, ловить все обновления, но тогда возникают конфликты слушателей нативных событий popstate
. Пробовал отсанавливать один роутер и запускать другой, чтобы событие слушалось только для конкретного таба, но похоже, что тогда история панелей Infinity
сбрасывается...
В браузере одна история, поэтому сделать несколько "веток" истории под свой таб так просто не получится.
Если у вас структура
Epic > View то передавать в activeStory activeView
Что-то сложнее сейчас не поддержано
Понятно, спасибо, что ответил.
Сделали свое решение. Проблему с историей браузера частично удалось решить с помощью нативного закрытия приложения по bridge, когда есть попытка вернуться назад из уже полностью чистой истории. Решили как раз так, чтобы на каждый таб была свой роутер и при переключении между табами, активный таб включал свой роутер, а неактивные отключались и не слушали popstate. Может быть наивно, но работает хорошо.