Wpis z mikrobloga

useEffect(()=>{
getStudent();
},[])

ESlint wyrzuca: React Hook useEffect has missing dependencies: 'getStudent'

Chodzi o to, żeby przy ładowaniu się komponentu pobrać raz dane, dlatego jest pusta tablica na końcu.
Funkcję getStudent używam jeszcze kilka razy i nie wydaje mi się, żeby przekopiowanie wnętrza funkcji było najlepszym pomysłem.
Jak rozwiązać ten błąd?

#react #reactjs
  • 3
@scorpio18k:

po pierwsze owrapuj deklarację funkcji getStudent w useCallback, po drugie w useEffectcie dodaj dependency getStudent. Alternatywnie możesz zignorować ten błąd dodając komentarz wyłączający eslinta dla tej linijki
@Rst00: Co prawda funkcja getStudent wywołuje się kilka razy ale jej kod się nie zmienia więc useEffect wywoła się tylko raz tak jakby była pusta tablica.
Dobrze rozumiem?
I czy tak samo by zadziałało jakby były argumenty np. getStudent(x); ?
via Wykop Mobilny (Android)
  • 1
@scorpio18k: tak, useCallback zapewni to że referencja się nie zmieni i będzie to nadal ta sama funkcja pod maską i jak dasz jako dependency to wywoła się i tak tylko raz ale nie będzie błędu eslinta.

No jakby był argument to nie bo byś wtedy w useCallbacku musiał dać x jako dependency ale to akurat dobrze bo przecież najpewniej chciałbyś pobrać dane odnośnie innego studenta jakby x się zmienił