Ich erhalte Daten von MarvelAPI und es gibt keine Garantie, ob der Schlüssel, auf den ich zugreife, verfügbar ist oder nicht. Also überprüfe ich jeden Schlüssel mit einer if-Anweisung, bevor ich darauf zugreife.Reagierung des verschachtelten JSON-Schlüssels vor dem Rendern
Wie Sie sehen, sieht der Code unten sehr hässlich aus. Gibt es einen viel besseren/Standard Weg dies zu tun?
renderCharacterNames(detail) {
console.log('detail', detail)
if (detail && detail[0] && detail[0].characters && detail[0].characters.items && detail[0].characters.items.length > 0) {
return (
<div>
{detail[0].characters.items.map((obj, index) => {
return <li key={index}>{obj.name}</li>
})}
</div>
)
} else {
return <div>No Character Name</div>
}
}
renderComicDetail() {
var detail = this.props.comicDetail;
if (!detail) {
return (
<div>No Data Yet (loading?)</div>
)
}
return (
<div>
{this.renderCharacterNames(detail)}
</div>
)
}
Gibt es einen Grund, warum Sie nur auf 'detail [0]' zugreifen? –
Die API scheint immer ein Array der Länge 1 mit allen enthaltenen Daten zurückzugeben. Ich betrachte es gerade so. Diese Daten kommen zurück, wenn ich die API mit comiId = someId abfrage, da jede ID einem Comic entspricht, denke ich, dass der Zugriff auf Details [0] vernünftig wäre (vorerst). Beachten Sie, dass ich es ändern kann, so dass es mehr Fälle behandeln kann, aber das ist nicht die Hauptfrage, die ich hier habe. Prost – ErnieKev