-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Open
Labels
Description
Prerequisites
- I have read the Contributing Guidelines.
- I agree to follow the Code of Conduct.
- I have searched for existing issues that already report this problem, without success.
Ionic Framework Version
v8.x
Current Behavior
- Ionic lifecycle methods do not fire on IonTabs pages
When usingIonTabs, lifecycle hooks such asuseIonViewDidEnter,useIonViewDidLeave, etc., do not work on tab root pages.
The same issue occurs on nested tab pages.
Screen.Recording.2025-11-20.at.19.15.34.mov
- Wrapping tab pages in
IonPagemakes lifecycle methods work, but breaks navigation
If each tab page is wrapped in anIonPagecomponent, lifecycle methods begin to work, but page transitions and navigation behavior become broken or inconsistent.
Screen.Recording.2025-11-20.at.19.17.52.mov
- Pages rerender multiple times when using
useEffect
If a simpleuseEffectis added to any tab page, the page rerenders many times.
Moreover, with every tab enter/exit, the number of rerenders increases, which suggests a mounting/unmounting loop or repeated component remounts.
Expected Behavior
- Ionic lifecycle hooks (
useIonViewDidEnter,useIonViewDidLeave, etc.) should:- Fire correctly on tab root pages.
- Fire correctly on nested pages inside tabs.
- Wrapping tab pages in
IonPageshould not break navigation or cause incorrect rendering. - Pages should rerender only when expected, not multiple times or with increasing frequency on each visit.
Steps to Reproduce
-
Create a new Ionic React project with
IonTabs. -
Add pages inside the tab routes.
-
Inside each page, add lifecycle hooks such as:
useIonViewDidEnter(() => console.log("enter")); useIonViewDidLeave(() => console.log("leave"));
-
Observe that lifecycle events do not fire.
-
Wrap pages in IonPage and observe:
- Lifecycle events start firing.
- Navigation/transitions break or behave incorrectly.
-
Add a simple useEffect:
useEffect(() => { console.log("render"); });
-
Navigate between tabs and observe:
- Pages rerender excessively.
- Number of rerenders increases with each navigation event.
Code Reproduction URL
https://stackblitz.com/edit/lxuxesz1-zspm2tce?file=src%2Fmain.tsx
Ionic Info
Ionic:
Ionic CLI : 5.4.16
Utility:
cordova-res : not installed
native-run : not installed
System:
NodeJS : v20.19.1
npm : 10.8.2
OS : Linux 5.0
Additional Information
No response
vadym-ivaniuk-mindly, vpolets-mindly, stas-raranetskyi, artdev78889 and maylorsan