State Management · Junior · Frage 23 von 75
Warum packt man useContext in einen eigenen Hook wie useAuth()?
export function useAuth() {
const ctx = useContext(AuthContext);
if (!ctx) throw new Error("useAuth must be used within AuthProvider");
return ctx;
}- 1Weil
useContextnicht direkt in Komponenten aufgerufen werden kann - 2Um den Wert des Contexts unveränderlich zu machen
- 3Um das Context-Objekt zu verbergen und bei fehlendem Provider klar zu scheitern
Antwort zeigen
Richtige Antwort: Um das Context-Objekt zu verbergen und bei fehlendem Provider klar zu scheitern
Erklärung
Konsumenten importieren einen Hook statt des Context-Objekts, TypeScript bekommt einen Nicht-null-Typ, und ein fehlender Provider erzeugt einen lesbaren Fehler statt undefined irgendwo tief im Code.