this.refs nicht mehr in componentDidMount verfügbar?

9

Aus dem Changelog für React v0.13:

"Die Reihenfolge der ref-Auflösungen hat sich leicht geändert, sodass ein Verweis auf eine Komponente direkt nach dem Aufruf der Methode componentDidMount verfügbar ist. Diese Änderung sollte nur beobachtbar sein, wenn Ihre Komponente den Callback einer übergeordneten Komponente innerhalb Ihres componentDidMount aufruft ist ein Anti-Pattern und sollte vermieden werden "

Gibt es also eine bessere Möglichkeit, auf this.refs zuzugreifen, nachdem das DOM bereitgestellt wurde? Ich mag es nicht, setTimeout() zu verwenden, aber das ist die beste Methode, die ich nach dem Mounten an einem bestimmten DOM ausführen kann. Gibt es eine Ersatzmethode, die ich vermisse? Oder ist der beste Weg, eine onLoad -Methode direkt an die Komponente anzuhängen?

    
GAEfan 11.03.2015, 02:59
quelle

1 Antwort

13

Vielleicht lest du zu viel darin.

Meine Interpretation ist, dass alle Referenzen auf untergeordnete Komponenten in componentDidMount verfügbar sind.

Die Änderung besteht darin, dass sie nicht verfügbar sind, bevor das eigene componentDidMount der untergeordneten Komponente abgeschlossen wurde (was vor der Komponente der übergeordneten Komponente geschieht). Davon würden Sie nur betroffen sein, wenn Sie innerhalb von componentDidMount des untergeordneten Elements einen Callback aufrufen und der Code versucht, sofort ref zu verwenden. Was wie ein Randfall und, wie sie sagen, ein Anti-Muster ist.

Daher sollte "normale Nutzung" von dieser Änderung nicht beeinflusst werden.

Bitte versuchen Sie es erneut.

    
Thilo 11.03.2015, 03:04
quelle

Tags und Links