VKCOM / vk-mini-apps-router

MIT License
26 stars 4 forks source link

Передача metaParams в RouteNavigator.back #362

Closed dsedinkin closed 6 months ago

dsedinkin commented 6 months ago

В методе RouteNavigator.push, есть возможность передавать metaParams (https://dev.vk.com/ru/libraries/router/reference/hooks/useMetaParams), но при RouteNavigator.back их нет.

Приходиться для возвращения на предыдущую страницу использовать RouteNavigator.push, чтоб сохранять параметры.

pasha-nikitin-2003 commented 6 months ago

Добрый день! Сейчас есть такая проблема. Спланируем и возьмем в работу задачу.

nshvyryaev commented 6 months ago

Добрый день! Хук useMetaParams() возвращает значение location.state текущей записи history в браузере.

Именно поэтому при выполнении Push и Replace можно передать metaParams - они будут записаны в state. Переход назад через back не меняет запись, поэтому нельзя туда передать metaParams.

То есть по идее, шаг назад не должен приносить новой информации, напротив, он возвращает некое объявленное ранее состояние. Поэтому в back нельзя передать дополнительные данные. Если предыдущую запись нужно изменить предыдущую запись - можно выполнить метод runSync экзепляра RouteNavigator и сделать внутри него back + replace.

Мы сохраним это поведение.

Привожу методы навигации для референса (на них основана навигация) https://developer.mozilla.org/en-US/docs/Web/API/History/pushState https://developer.mozilla.org/en-US/docs/Web/API/History/back