2015-03-11 12 views
8

Aus dem Changelog für V0.13 Reagieren:this.refs nicht mehr in componentDidMount verfügbar?

„ref Auflösung, um etwas so geändert hat, um eine Komponente, die eine ref unmittelbar nach seiner componentDidMount verfügbar ist Methode aufgerufen wird, diese Änderung nur beobachtbar sein sollte, wenn Ihre Komponente a ruft Der Rückruf der Hauptkomponente innerhalb Ihrer componentDidMount, der ein Anti-Pattern ist und vermieden werden sollte "

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

Antwort

13

Vielleicht lesen Sie zu viel in diese.

Meine Interpretation ist, dass alle Refs zu untergeordneten Komponenten in componentDidMount zur Verfügung stehen.

Die Änderung ist, dass sie vor der eigenen componentDidMount Kinder Komponente nicht verfügbar sind abgeschlossen (die vor der übergeordnete Komponente passiert). Und Sie würden nur davon betroffen werden, wenn man von innen componentDidMount des Kindes einige Rückruf nennen, und dieser Code versucht, den ref sofort zu verwenden. Was wie ein Randfall und wie man sagt ein Anti-Pattern ist.

So „normaler Gebrauch“ sollte nicht von dieser Änderung betroffen sein.

Bitte versuchen und berichten.

+1

Danke, Thilo. Es war mein Fehler. Ich konnte die reacte lib nicht aktualisieren. – GAEfan

Verwandte Themen