From d8fb7d0ab1694fe86edbd52668f84fb9bb9f4dcf Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Mon, 2 Aug 2021 11:18:43 +0200 Subject: [PATCH] fix(router): invalidate ongoing navigation when unmounting --- src/router.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/router.ts b/src/router.ts index 4895b884c..c0ada2be9 100644 --- a/src/router.ts +++ b/src/router.ts @@ -923,7 +923,7 @@ export function createRouter(options: RouterOptions): Router { markAsReady() } - let removeHistoryListener: () => void + let removeHistoryListener: () => void | undefined // attach listener to history to trigger navigations function setupListeners() { removeHistoryListener = routerHistory.listen((to, _from, info) => { @@ -1195,8 +1195,11 @@ export function createRouter(options: RouterOptions): Router { installedApps.add(app) app.unmount = function () { installedApps.delete(app) + // the router is not attached to an app anymore if (installedApps.size < 1) { - removeHistoryListener() + // invalidate the current navigation + pendingLocation = START_LOCATION_NORMALIZED + removeHistoryListener && removeHistoryListener() currentRoute.value = START_LOCATION_NORMALIZED started = false ready = false