Zarządzanie stanem · Senior · Pytanie 2 z 75
Co jest nie tak z tym getSnapshot?
useSyncExternalStore(subscribe, () => ({ items: store.items }));- ✓Poprawna odpowiedź: Zwraca nowy obiekt przy każdym wywołaniu, React widzi nieskończone zmiany i się zapętla
- 2
getSnapshotmusi być asynchroniczny - 3Migawki nie mogą zawierać tablic
Wyjaśnienie
React wielokrotnie wywołuje getSnapshot i porównuje wyniki przez Object.is; nowy obiekt za każdym razem oznacza „zmieniło się”, co powoduje nieskończone rendery. Zwracaj z store'a wartość z cache/niemutowalną (lub prymityw).