problemcomponentDidMount wywołana przed ref zwrotnego
ja Ustawianie reakcji ref
stosując definicję funkcję rolki
render =() => {
return (
<div className="drawer" ref={drawer => this.drawerRef = drawer}>
wówczas componentDidMount
odniesienie DOM nie jest ustawiony
componentDidMount =() => {
// this.drawerRef is not defined
Rozumiem, że wywołanie zwrotne powinno być uruchamiane podczas montowania, jednak addi ng console.log
oświadczenia ujawniają, że componentDidMount
jest nazywane przed funkcją oddzwaniania zwrotnego.
Inne przykłady kodu szukałem na przykład this discussion na github wskazać samo założenie, componentDidMount
powinien być nazywany po jakichkolwiek ref
callbacków określonych w render
, to nawet stated in the conversation
Więc componentDidMount jest zwolniony po wykonaniu wszystkich wywołań zwrotnych ref, które zostały wykonane ?
Tak.
Używam reagować 15.4.1
coś innego Próbowałem
Aby sprawdzić funkcję ref
był nazywany, próbowałem go na definiowanie klasy jako takie
setDrawerRef = (drawer) => {
this.drawerRef = drawer;
}
wówczas render
<div className="drawer" ref={this.setDrawerRef}>
rejestrowania konsola w tym przypadku ujawnia zwrotna jest rzeczywiście miano pocomponentDidMount
Mogę się mylić, ale kiedy używasz funkcji strzałki w metodzie renderowania, przechwyci ona wartość "tego" z zakresu leksykalnego poza klasą. Spróbuj pozbyć się składni funkcji strzałki dla metod klasy i zobacz, czy to pomaga. – Yoshi
to działa dobrze dla mnie. Czy na pewno chcesz oddzwonić po wywołaniu DidMount? Zrób 2 konsolę.loguje się w obu funkcjach i sprawdzam, który był pierwszy – GProst
Używam 15.5.4 React – GProst