Код: Выделить всё
sessionRelevantDataТекущий код ниже: < /p>
Код: Выделить всё
useEffect(() => {
localStorage.setItem(
'tabsCount',
Number(localStorage.getItem('tabsCount') || 0) + 1,
);
const cleanupFn = e => {
const isReload =
_.get(
e.currentTarget.performance.getEntriesByType('navigation'),
'0.type',
) === 'reload';
const tabsCount = Number(localStorage.getItem('tabsCount'));
localStorage.setItem('tabsCount', tabsCount - 1);
if (!isReload && tabsCount < 2) {
indexedDB.deleteDatabase('sessionRelevantData');
}
};
const eventType = isIOS() ? 'pagehide' : 'beforeunload';
window.addEventListener(eventType, cleanupFn);
return () => {
window.removeEventListener(eventType, cleanupFn);
};
}, []);
< /code>
Этот код работает, как и ожидалось, на начальной вкладке. Проблема возникает, когда пользователь загружает начальную вкладку, откройте ссылку из приложения на новой вкладке, закрывает первую вкладку, а затем переходит к перезагрузке второй вкладки. По какой -то причине значение _.get (e.currenttarget.performance.getEntriesBytype ('navigation'), '0.type') Есть ли способ последовательно получить правильный тип навигации?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ation-type
Мобильная версия