Ich bin mir bewusst, dass es viele Fragen die gleiche Frage, aber keine dieser Antworten scheinen für meinen speziellen Fall zu arbeiten, und ich habe dies für Stunden und immer noch kann es nicht herausfinden. Ich bin nach einer ReactJs Anleitung für eine WeatherApp.I erhalte ein Objekt von einem API-Aufruf zurück, die wie folgt aussieht:ReactJS: Kann nicht bereit Eigenschaft xxx von undefined
{
current: {}
forecast:
forecastday:[ //
0: {...}
1: {...}
2: {...}
3: {...}
4: {...}
] //Array of five objects
location: {}
} //this object is part of a bigger response object
Als ich console.log(objectName.forecast.forecastday)
ich wieder das Array erhalten, was bedeutet es eigentlich da ist.
Aber wenn ich versuche
var forecastData = props.forecast.data;
var days = forecastData.forecast.forecastday.map(function (day) {
//do something
});
es gibt mir wieder den Fehler Uncaught TypeError: Cannot read property 'forecast' of undefined
. Ich habe auch versucht Logging forecastData
und es kommt wieder gut. forecast
ist eindeutig da, es sei denn, ich vermisse etwas sehr offensichtlich, ich weiß nicht, was los ist.
Danke.
vielleicht 'var prognoseData = props.forecast.data;' gibt das das problem? Wenn 'procedureData' Ihnen korrekte Daten liefert –
' props.forecast.data' ist 'undefined'. Stellen Sie sicher, dass die Prop-Komponente korrekt von der übergeordneten Komponente übergeben wird. Versuchen Sie, eine 'console.log (this.props)' zu Ihrer Renderfunktion hinzuzufügen und zu überprüfen, was übergeben wird. – SimpleJ
Behandeln Sie das anfängliche Rendern, wenn keine Daten korrekt sind? Der Block, der Probleme verursacht, sollte nur zugänglich sein, wenn die API-Aufrufe abgeschlossen sind. Mein Gefühl ist, dass Sie keinen solchen Schutz haben, und dieser Code wird aufgerufen, bevor die App wieder auf den neuesten Stand gebracht wird. – finalfreq