From d82a29c424e58fb39caf938e0ccaa23a49bfe034 Mon Sep 17 00:00:00 2001 From: Nikolay Date: Fri, 24 Mar 2023 09:51:22 +0300 Subject: [PATCH] Unlisten PageLifecycle events on stop --- src/index.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 2258b758..14b27a6d 100644 --- a/src/index.js +++ b/src/index.js @@ -68,7 +68,7 @@ export default class ScrollBehavior { handleNavigation(action !== 'POP'); }); - PageLifecycle.addEventListener('statechange', ({ newState }) => { + this._pageLifecycleListener = ({ newState }) => { if ( newState === 'terminated' || newState === 'frozen' || @@ -83,7 +83,9 @@ export default class ScrollBehavior { } else { this._setScrollRestoration(); } - }); + }; + + PageLifecycle.addEventListener('statechange', this._pageLifecycleListener); } registerElement(key, element, shouldUpdateScroll, context) { @@ -197,6 +199,8 @@ export default class ScrollBehavior { window.removeEventListener('scroll', this._onWindowScroll); this._cancelCheckWindowScroll(); + PageLifecycle.removeEventListener('statechange', this._pageLifecycleListener); + this._removeNavigationListener(); }