Wpis z mikrobloga

#react #programowanie
Aj nid help łans egen. Nie za bardzo rozumiem dlaczego fetchedFile jest nullowany przy rerenderze - przekazuję te pole jako props do wykorzystywanego "w środku" komponentu i w momencie jak setuję te pole to ten mój komponent wrapper odpala się od zera wraz z wartością fetchedFile ustawioną na null - co ciekawe reszta pól ma przywrócony poprzedni stan czyli np. initialized jest na true. Ktoś podpowie co tu #!$%@?łem?
Pobierz
źródło: comment_1662391228JyHQh3tfvPRl5lk5GiSA0T.jpg
  • 24
@Dominias:
getMonitoringData powinien być useCallback'iem, sideEffect powinien być wywołany w useEffect z pustą tablicą deps (aby był wykonany raz) i zwracać funkcję czyszczącą setInterval.
@Dominias:

any any[] (°°

Nie za bardzo rozumiem, dlaczego do ` przekazujesz całą metodę sideEffect do fetchowania danych, skoro te dane i tak przekazujesz w propsach jako wynik metody getMonitoringData.

Tak jak przedmówca stwierdził, pobierz dane w
useEffect z pustym deps array i zrób clearInterval na return`.

BTW Ja bym zrobił z tego custom hooka.
@nightman: @pustko: ok udało mi się dobrze ukazać mój problem, spójrzcie na console.log który ma mi zwrócić aktualną wartośc - cały czas zwraca 0. Ten sam problem mam w swojej apce gdzie nie zwraca mi aktualnej wartości tylko null (inicjującą wartość), a chcę mieć do niej dostęp żeby porównać stary i nowy result.
@Dominias: Btw. useRef możesz tez wykorzystać do trzymania wartości zmiennej initialize, żeby zachowac ja pomiędzy renderami. Jak wrócę do domu to przyjrzę się dokładniej Twojemu przykładowi i problemowi
@Dominias: a może wytłumacz co Ty tu chcesz osiągnąć? Bo nie za bardzo rozumiem, ale widzę ze na na początku po wyrenderowaniu komponentu chcesz odpalić funkcje, która na intervalu pobiera dane. I chcesz tez aby user po kliknięciu na jakiś element odpalił te sama funkcje, czyli ponownie odpalił interval z pobieraniem danych?

Nie wiem czy dobrze zrozumiałem.