React · Senior · Frage 60 von 75

Warum rendert <ExpensiveTree /> hier nicht neu, wenn sich der Zustand von ColorPicker ändert?

function ColorPicker({ children }) {
  const [color, setColor] = useState("red");
  return <div style={{ color }}>{children}</div>;
}
// <ColorPicker><ExpensiveTree /></ColorPicker>
Antwort zeigen

Richtige Antwort: children stammt von der Elternkomponente, ist also dasselbe Objekt

Erklärung

JSX als children zu übergeben („Inhalt nach oben heben“) ist eine Optimierung ohne memo: Nur die Elternkomponente, die das Element erzeugt hat, entscheidet, wann es sich ändert.

Zum Weiterlesen

Fehler in der Frage

React · Senior · Frage 60

Teste dich selbst

Mach den Test React · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen