Ich habe ein Problem mit meiner ionic 2 / angular 2 App.
Ich habe eine App.ts, wo der Loch "Auth" Teil implementiert ist.
Der Code sieht so aus:
%Vor%Aber jetzt, wenn ich versuche, die App zu starten, bekomme ich diese Nachricht:
%Vor%Haben Sie eine Idee, wie Sie dieses Problem lösen können? Danke!
Sie können einen NavController in einer Root-Komponente nicht über einen Konstruktor einfügen.
Also, im Grunde kannst du not
etwas wie unten tun: -
Und das ist, was Ionic Docs zu sagen hat.
Was, wenn Sie die Navigation von Ihrer Root-App-Komponente aus steuern möchten? Sie können NavController nicht injizieren, da alle Komponenten, die Navigations-Controller sind, untergeordnete Elemente der Root-Komponente sind und daher nicht für die Injektion verfügbar sind.
Durch Hinzufügen einer Referenzvariablen zum Ion-Nav können Sie @ViewChild verwenden, um eine Instanz der Nav-Komponente zu erhalten, die ein Navigationscontroller ist (er erweitert NavController)
Sie können NavController
nicht in Ihre Root-Komponente injizieren, also sollten Sie sie aus diesem Teil des Codes entfernen. Weitere Informationen finden Sie hier .
Bitte stellen Sie sicher, dass Sie bereits eine Referenzvariable in Ihrem ion-nav
haben, so ( #myNav)
:
Und dann können Sie diese Referenz erhalten, indem Sie ViewChild
verwenden. Sie können dann einfach zu einer anderen Seite navigieren, indem Sie diese Eigenschaft verwenden:
Es wird empfohlen, this.app.getActiveNavs()
in Ionic 3+ zu verwenden, da getActiveNav () in der nächsten Hauptversion entfernt wird. Ihre Funktion kann also wie folgt geschrieben werden:
Um auf den Nav-Stack zu drücken, können Sie einfach die Seite importieren (sagen wir YourPage
) und dann:
Altes Verhalten für Ionic 2 ist in Ionic 3 veraltet:
Sie können this.getActiveNav()
in Ionic 2 (und Ionic 3) verwenden, so dass Ihre Funktion wie folgt geschrieben werden kann:
Bei beiden Methoden benötigen Sie keine import
oder private
Variable, damit dies funktioniert. Wenn Sie sich in Component
befinden, beziehen Sie sich einfach auf Ihre App
:
Eine Ursache für diesen Fehler ist, wenn Sie versuchen, NavController
in eine Provider-Klasse zu injizieren.
So:
Ich hatte gerade diesen Fehler ...
Nach dem Entfernen dieser Injektion (und Refactoring des Codes), hat es funktioniert.
Tags und Links angular typescript ionic3 ionic2