Ich versuche zu verstehen, wie ich fetch verwenden kann, um Daten von einer API zu erhalten, und verwenden Sie es zum Erstellen von React-Komponenten. Ich bin ein wenig verwirrt, wenn dies die richtige Methode ist, um die Daten abzurufen, zu speichern und zu verwenden, oder wenn es einen anderen Weg gibt, den ich vielleicht nicht kenne (ich habe etwas in den Dokumenten über Zustände und Reittiere gelesen, aber ich konnte meinen Kopf nicht bekommen) um ihn herum.Datenbereich in Reagieren mit Fetch
JS
//Data
const url = 'https://api.tfl.gov.uk/BikePoint'; // API
fetch(url)
.then((resp) => resp.json()) // Transform the data into json
.then(function(data) {
// How can I make data accessible outside this function?
})
.catch(function(error) {
console.log(JSON.stringify(error));
});
//React
const List = ({items, each}) =>
<div className = "panel panel-default">
<div className = "panel-heading"><h2>Bike points</h2></div>
<div className = "panel-body">
<ul className = "list-group">{items.map((item, key) =>
<ListItem key = {key} item = {each(item)} number={item.commonName}/>)}</ul>
</div>
</div>
const ListItem = ({item, arrival, number}) =>
<li className = "list-group-item">{number}</li>
//How can access the data here?
ReactDOM.render(<List items={data} each={ListItem} />, document.querySelector('#main'))
würde ich mich freuen, wenn Sie mich auf jede Ressource zeigen könnte, dass mir dieses Konzept verstehen helfen können. Vielen Dank im Voraus.
Finbarr, du bist ein Gewinner. Ich lade das Projekt herunter und werde bald Fragen stellen. Vielen Dank im Voraus. –
Hallo Finbarr, kannst du mir helfen zu verstehen, was du getan hast? Ich bin ein bisschen unsicher bezüglich einiger Teile des Codes. Hier ist der kommentierte [Gist-Code] (https://gist.github.com/didacus/c674046632f05cf79500de4df9584b7d) –
Ich habe ein neues Commit für die App.js auf meinem Github-Repository als Reaktion auf Ihre Kommentare hinzugefügt. Hoffentlich hilft es, es gibt einige interessante Konzepte zu verstehen/zu lernen wie Cross-Source-Ressourcen-Sharing (CORS), Promises und Javascript-Importe, String-Interpolation und ternäre Ausdrücke. Eine Sache, die ich sagen würde, ist, dass mein Code überhaupt nicht sehr robust ist, und normalerweise würden Sie solch ein Holen in einer reaktiven Komponente nicht machen, stellen Sie sich vor, Sie haben mehrere Komponenten, die dieselben API-Antwortdaten verwenden müssen. Sie hätten ein Abrufmodul, das alle Abrufvorgänge abwickelt, und einen Zustandsspeicher wie z. B. flux/redux –