ionic-team / ionic-framework

A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.
https://ionicframework.com
MIT License
50.97k stars 13.51k forks source link

Lifecycle events called in wrong order #17373

Open georgechr opened 5 years ago

georgechr commented 5 years ago

Bug Report

Ionic version: [x] 4.0.0

Current behavior: When changing the root page the lifecycle events of the previous and next page seem to fire out of order. So, lets say page A is currently displayed. Navigating to page B fires the lifecycle events in the following order:

  1. Page B: ngOnInit
  2. Page B: ionViewWillEnter
  3. Page B: ionViewDidEnter
  4. Page A: ngOnDestroy

(ionViewWillLeave and ionViewDidLeave do not fire at all)

Expected behavior: I would expect that page A fires ngOnDestroy or ionViewWillLeave or ionViewDidLeave before page B's 'enter' events

martijnlutgens commented 5 years ago

I am experiencing this partially in 4.0.1. ionViewWillLeave does trigger, but is too late when using swipe to go back. In Ionic 3 ionViewWillLeave will trigger before the transform animation. Now in Ionic 4 it is triggered after the transition is started so the user can drag de current page away and then it will stay that way, leaving translateX at 100%.

liamdebeasi commented 5 years ago

Hi there,

Thanks for the issue! Would you be able to provide a repository with the code required to reproduce this issue?

Thanks!

martijnlutgens commented 5 years ago

I have opened a separate issue for this with a repository link: https://github.com/ionic-team/ionic/issues/17600. This had already been confirmed as a bug. Any idea when this is going on deck?

annmirosh commented 2 years ago

any updates on it in 2022? maybe you can suggest some workaround? I work with a webcomponent that clear own dependencies when destroy happens, and component doesn't work because destroy fired after new view created