Angular2 - Uncaught Versuch, eine zerstörte Ansicht zu verwenden: detectChanges

8

Also gibt mir meine Anwendung diesen Fehler:

%Vor%

Beim Aufrufen von detectChanges für die ChangeDetectorReference einer Komponente: this._changeDetectorRef.detectChanges();

Ich stieß auf eine ähnliche Frage:

Was ist ein dehydrierter Detektor und wie benutze ich einen hier?

und einige github Probleme:

Ссылка Ссылка

Das hat mich dazu gebracht, detectChanges als solche zu nennen:

setTimeout( () => this._changeDetectorRef.detectChanges(), 10);

Was den Fehler geändert hat:

%Vor%

Aber es passiert immer noch. Es bricht nicht meine Anwendung (es war vor der Verwendung von setTimeout), aber ich würde gerne herausfinden, wie man es loswerden.

Ich rufe detectChanges () auf, weil im Hintergrund Dinge passieren, die den Zustand der Anwendung ändern (nicht das Ergebnis einer Benutzereingabe). Die Komponente wird nicht neu erstellt oder bei dem Aufruf von detectChanges () zerstört. Der Stil der Komponente ändert sich aufgrund von etwas, das im Hintergrund passiert.

    
Gabe O'Leary 23.05.2016, 20:04
quelle

3 Antworten

4

Geben Sie im Konstruktor Ihrer Klasse Folgendes ein:

%Vor%

Und in @component:

%Vor%     
Emerceen 25.05.2016 06:25
quelle
2

Meine Fehler wurden ausgelöst, weil subscribe() versucht hat, den Abschlusscode auszuführen, nachdem die Ansicht bereits geändert wurde.

%Vor%

Das würde passieren, wenn ich die Ansicht sehr schnell ändere oder das Internet langsam wäre.

Ich habe einen booleschen Wert erstellt, als die Ansicht erstellt und auf true gesetzt wurde:

%Vor%

Wenn die Ansicht zerstört ist, setze sie auf false:

%Vor%

und überprüfen Sie das, bevor Sie detectChanges()

aufrufen %Vor%     
theblindprophet 10.08.2017 00:34
quelle
0

Oder Sie können dies verwenden:

%Vor%
    
Mika 20.10.2017 12:17
quelle

Tags und Links