diff --git a/packages/vue/src/components/IonTabBar.ts b/packages/vue/src/components/IonTabBar.ts
index ee4e399fdc..85079abd8d 100644
--- a/packages/vue/src/components/IonTabBar.ts
+++ b/packages/vue/src/components/IonTabBar.ts
@@ -9,10 +9,10 @@ export const IonTabBar = defineComponent({
// TODO types
const tabs = Array.from(this.$el.querySelectorAll('ion-tab-button')) as any[];
const activeTab = tabs.find(tab => currentRoute.pathname.startsWith(tab.href));
+ const tabBar = this.$refs.ionTabBar;
- if (activeTab) {
+ if (activeTab && tabBar) {
ionRouter.handleSetCurrentTab(activeTab.tab);
- const tabBar = this.$refs.ionTabBar;
tabBar.selectedTab = activeTab.tab;
}
}
diff --git a/packages/vue/test-app/src/views/Tab1.vue b/packages/vue/test-app/src/views/Tab1.vue
index 5a1ed75132..9d91263f6f 100644
--- a/packages/vue/test-app/src/views/Tab1.vue
+++ b/packages/vue/test-app/src/views/Tab1.vue
@@ -1,7 +1,10 @@
-
+
+
+
+
Tab 1
@@ -18,11 +21,11 @@
diff --git a/packages/vue/test-app/src/views/Tabs.vue b/packages/vue/test-app/src/views/Tabs.vue
index 3463fce4fa..16497a81c7 100644
--- a/packages/vue/test-app/src/views/Tabs.vue
+++ b/packages/vue/test-app/src/views/Tabs.vue
@@ -1,5 +1,5 @@
-
+
@@ -7,12 +7,12 @@
Tab 1
-
+
Tab 2
-
+
Tab 3
@@ -32,10 +32,10 @@ export default {
components: { IonContent, IonLabel, IonTabs, IonTabBar, IonTabButton, IonIcon, IonPage },
setup() {
return {
- ellipse,
- square,
+ ellipse,
+ square,
triangle,
}
}
}
-
\ No newline at end of file
+
diff --git a/packages/vue/test-app/tests/e2e/specs/tabs.js b/packages/vue/test-app/tests/e2e/specs/tabs.js
new file mode 100644
index 0000000000..7839f56023
--- /dev/null
+++ b/packages/vue/test-app/tests/e2e/specs/tabs.js
@@ -0,0 +1,19 @@
+describe('Tabs', () => {
+ beforeEach(() => {
+ cy.visit('http://localhost:8080')
+ })
+
+ it('should be able to create and destroy tabs', () => {
+ cy.get('#tabs').click();
+ cy.ionPageVisible('tab1');
+
+ cy.ionBackClick('tab1');
+ cy.ionPageDoesNotExist('tabs');
+
+ cy.get('#tabs').click();
+ cy.ionPageVisible('tab1');
+
+ cy.ionBackClick('tab1');
+ cy.ionPageDoesNotExist('tabs');
+ });
+})