diff --git a/packages/core/src/components/nav/nav.tsx b/packages/core/src/components/nav/nav.tsx index ff6e861345..0e11421588 100644 --- a/packages/core/src/components/nav/nav.tsx +++ b/packages/core/src/components/nav/nav.tsx @@ -265,8 +265,8 @@ export class Nav implements PublicNav, NavOutlet { } @Method() - activateFromTab() { - return activateFromTabImpl(this); + activateFromTab(tabAlreadySelected: boolean) { + return activateFromTabImpl(this, tabAlreadySelected); } canSwipeBack(): boolean { @@ -628,11 +628,11 @@ export function navigateToUrl(nav: Nav, url: string, _method: string): Promise { +export function activateFromTabImpl(nav: Nav, tabAlreadySelected: boolean): Promise { return nav.onAllTransitionsComplete().then(() => { // if there is not a view set and it's not transitioning, // go ahead and set the root - if (nav.getViews().length === 0 && !nav.isTransitioning()) { + if ( (nav.getViews().length === 0 || tabAlreadySelected) && !nav.isTransitioning()) { return nav.setRoot(nav.root); } diff --git a/packages/core/src/components/tab/tab.tsx b/packages/core/src/components/tab/tab.tsx index af98d185a7..6d0a8d344c 100644 --- a/packages/core/src/components/tab/tab.tsx +++ b/packages/core/src/components/tab/tab.tsx @@ -130,7 +130,7 @@ export class Tab { // the tab's nav has not been initialized externally, so // check if we need to initiailize it return nav.componentOnReady() - .then(() => nav.activateFromTab()); + .then(() => nav.activateFromTab(this.selected)); }); }