chrome · JavaScript
Die Meldung
Uncaught TypeError: Cannot read properties of undefined (reading 'name')
Was es bedeutet
Der Wert links vom Punkt ist undefined, und Sie haben eine Eigenschaft davon gelesen; der Name in Klammern ist die gewünschte Eigenschaft, kaputt ist also der Wert davor. Ursachen sind eine noch nicht eingetroffene Antwort, ein nie übergebenes Prop, eine Ebene zu tief wie bei data.user.name, oder arr[0].id auf einem leeren Array. Wo der Wert wirklich optional ist, kürzt user?.name ab — sollte er aber vorhanden sein, verwandelt ?. den Fehler nur in ein undefined, das in der nächsten Zeile scheitert; suchen Sie stromaufwärts, warum es undefined ist. Vor Chrome 78 lautete derselbe Fehler Cannot read property 'name' of undefined.
Die Lösung
Hier hilft kein Einzeiler. Die Erklärung sagt, worauf zu schauen ist.
- Ausgegeben von
- chrome
- JavaScript
- 15
Browser- und Node-Fehler nennen meist, was kaputtging, aber nicht, warum der Wert so wurde — Sie haben undefined gelesen, es war keine Funktion, es war kein JSON — die Stelle zum Reparieren liegt also stromaufwärts der werfenden Zeile, und nur diese Zeile mit ?. und Standardwerten stillzulegen lässt dasselbe Problem weiter entfernt und in schwerer erkennbarer Gestalt wiederkehren.
Eine Fehlermeldung lesen
- Von der ersten Zeile abwärts lesen. Weiter unten geht es um das Innere des Werkzeugs; die Ursache steht meist oben.
- Gibt es Datei und Zeilennummer, dort anfangen — nicht der oberste Stack-Frame, sondern die oberste Zeile, die eine eigene Datei nennt.
- Die Meldung wörtlich suchen, vorher aber eigene Pfade und Variablennamen entfernen; genau die verhindern den Treffer.
- Dieselbe Lage wird je Werkzeugversion anders formuliert. Passen die Treffer nicht, die Versionsnummer mit in die Suche.
- Vor dem Einfügen einer Lösung prüfen, was sie verwirft. Manches davon lässt sich nicht zurückholen.
Häufige Fragen
Q. Was bedeutet „Uncaught TypeError: Cannot read properties of undefined (reading 'name')“?
Der Wert links vom Punkt ist undefined, und Sie haben eine Eigenschaft davon gelesen; der Name in Klammern ist die gewünschte Eigenschaft, kaputt ist also der Wert davor. Ursachen sind eine noch nicht eingetroffene Antwort, ein nie übergebenes Prop, eine Ebene zu tief wie bei data.user.name, oder arr[0].id auf einem leeren Array. Wo der Wert wirklich optional ist, kürzt user?.name ab — sollte er aber vorhanden sein, verwandelt ?. den Fehler nur in ein undefined, das in der nächsten Zeile scheitert; suchen Sie stromaufwärts, warum es undefined ist. Vor Chrome 78 lautete derselbe Fehler Cannot read property 'name' of undefined.
Q. Wie behebe ich das?
Es gibt keinen Einzeiler. Die Erklärung oben sagt, worauf zu schauen ist.
Q. Welches Werkzeug gibt das aus?
chrome. Es gehört zu JavaScript, und die Meldung hat 9 Wörter.