State Management · Middle · Frage 21 von 75
Warum verursacht ein Selektor, der ein neues Objekt liefert, zusätzliche Renderings (oder in v5 eine Schleife)?
const { a, b } = useStore((s) => ({ a: s.a, b: s.b }));- 1Das Objekt ist jedes Mal neu;
useShallownutzen - 2Objekte darf man nur über
getState()auswählen - 3Zustand verbietet, mehr als ein Feld auszuwählen
Antwort zeigen
Richtige Antwort: Das Objekt ist jedes Mal neu; useShallow nutzen
Erklärung
Zustand vergleicht Selektor-Ergebnisse mit Object.is. useShallow((s) => ({ a: s.a, b: s.b })) vergleicht die Felder flach und behält dieselbe Referenz, wenn sie gleich sind.