React · Middle · Pytanie 54 z 75
Dlaczego ten efekt uruchamia się przy każdym renderze, choć options wygląda tak samo?
const options = { roomId, serverUrl };
useEffect(() => connect(options), [options]);- ✓Poprawna odpowiedź: Przy każdym renderze tworzony jest nowy obiekt, więc zależność jest zawsze inna
- 2Efekty nie mogą zależeć od obiektów
- 3Na liście zależności brakuje
serverUrl
Wyjaśnienie
Utwórz obiekt wewnątrz efektu i zależ od prymitywów ([roomId, serverUrl]) albo go zmemoizuj. Obiekty i funkcje porównuje się po referencji.