ProblemcomponentDidMount VOR ref Rückruf genannt
Ich gründe eine reagieren ref
eine Inline-Funktionsdefinition mit
render =() => {
return (
<div className="drawer" ref={drawer => this.drawerRef = drawer}>
dann in componentDidMount
der DOM-Referenz nicht gesetzt
componentDidMount =() => {
// this.drawerRef is not defined
Mein Verständnis ist der ref
Callback sollte während mount, jedoch addi laufen ng console.log
Aussagen offenbart componentDidMount
heißt vor die Ref Callback-Funktion.
Weitere Codebeispiele ich zum Beispiel haben gesucht this discussion auf Github die gleiche Annahme anzuzeigen, sollte componentDidMount
nach irgendwelchen ref
Rückrufe in render
definiert aufgerufen werden, es ist sogar stated in the conversation
So componentDidMount ist abgefeuert, nachdem alle Ref Callbacks ausgeführt wurden?
Ja.
ich reagieren mit 15.4.1
Etwas anderes Ich
versucht haben, die ref
Funktion zu überprüfen genannt wurde, habe ich versucht, es auf die Klasse als solche definiert,
setDrawerRef = (drawer) => {
this.drawerRef = drawer;
}
dann in render
<div className="drawer" ref={this.setDrawerRef}>
Console Logging in diesem Fall der Rückruf zeigt in der Tat nachcomponentDidMount
Ich kann falsch liegen, aber wenn Sie Pfeil-Funktion für die Render-Methoden verwenden, wird es den Wert von "this" aus dem lexikalischen Bereich außerhalb Ihrer Klasse erfassen. Versuchen Sie, die Pfeilfunktionssyntax für Ihre Klassenmethoden loszuwerden und sehen Sie, ob es hilft. – Yoshi
das funktioniert gut für mich. Sind Sie sicher, dass Callback-Anrufe nach DidMount zurückgewiesen werden? Mach 2 Konsolen.Logs in beiden Funktionen und sehen, welche war zuerst – GProst
Ich benutze 15.5.4 React – GProst