Je suis en train de mettre à jour mon projet Ionic 3 vers le dernier Ionic 4 et j'ai quelques problèmes avec le routage. Dans Ionic 3, j'ai utilisé setRoot comme ceci:
handler: () => navCtrl.parent.parent.setRoot(HomePage, 'logout', {animate: true})
La dernière navCtrl d'Ionic 4 n'a que goBack, goForward et goRoot, et je ne comprends pas comment utiliser parent. J'ai trouvé ActivatedRoute dans Angular, mais je ne pense pas que ce soit la bonne façon. Comment puis-je faire?
De manière générale, et en citant ce superbe article de Josh Morony sur ce sujet :
Dans Ionic 4 avec routage angulaire, il n’ya pas de page racine à définir.
Parce que Ionic 4 repose sur le routeur Angular, le NavController a été modifié pour refléter cette nouvelle réalité. De plus, pour une application Angular, il n’existe pas de route «racine». Vous effectuez simplement une transition entre les itinéraires et le cadre effectue le reste du travail.
De manière générale, les méthodes navigateRoot
, navigateBackward
et navigateForward
servent uniquement à indiquer à Ionic comment traiter les animations. Vous pouvez donc utiliser navigateRoot
dans Ionic 4 pour réaliser la même chose que vous avez utilisé setRoot
sur Ionic 3.
Je vous recommande vivement de lire l’article susmentionné, qui traite en grande partie de ce que vous devez savoir pour migrer vos itinéraires de la version 3 à la version 4 d’Ionic.
Pour que votre page soit définie sur la page racine dans Ionic 4, vous devez utiliser browseRoot au lieu de setRoot
this.navCtrl.navigateRoot('/pageName');