Zarządzanie stanem · Middle · Pytanie 21 z 75
Dlaczego selektor zwracający nowy obiekt powoduje zbędne rendery (lub nieskończoną pętlę w v5)?
const { a, b } = useStore((s) => ({ a: s.a, b: s.b }));- ✓Poprawna odpowiedź: Za każdym razem tworzony jest nowy obiekt; owiń selektor w
useShallow - 2Zustand zabrania wybierania więcej niż jednego pola
- 3Obiekty można wybierać tylko przez
getState()
Wyjaśnienie
Zustand porównuje wyniki selektora przez Object.is. useShallow((s) => ({ a: s.a, b: s.b })) porównuje pola płytko i zachowuje tę samą referencję, jeśli są równe.