nicht festlegen Ich arbeite in React und versuche, ein ImageGrid mit Daten aus einer API zu füllen. Es gibt kein Problem mit den Daten bekommen, aber irgendwie kann ich nicht meinen Zustand gesetzt mit den responseData
React kann den Status
ich die Daten zeigen kann, während ich die Antwort von dem API bekommen, aber ich kann meinen Zustand nicht gesetzt ...
componentWillMount()
{
this.state = {
content: ''
};
this.loadContent();
}
loadContent()
{
ApiService.getTweets(topic,numberOfElements,offset).then((responseData) => {
console.log("Data is here",responseData); //<---------- HERE
this.setState({
content: responseData
});
})
console.log("Data is not here",this.state.content); //<---------- HERE
}
Hier
ich erhalte die Daten:
class ApiService {
static getTweets() {
return fetch("https://MyURL", {
method: 'get'
})
.then((resp) => resp.json())
.then(function(data) {
return data;
}).catch(function(error) {
console.log(error);// Error :(
});
}
}
export default ApiService;
Zwei Gründe (mindestens): setState nicht den Zustand unmittelbar gesetzt, und Sie versuchen, darauf zuzugreifen, bevor er genannten Sie worden ist gesetzt in einem Asynchron-Rückruf . –
Mögliches Duplikat von [Status bei Klick-Antwort ändern]] (https://stackoverflow.com/questions/41278385/change-state-on-click-react-js) –
React-Dokumente schlagen vor, den Status im Konstruktor bei Verwendung festzulegen ES6-Klassen. Aber das sollte dieses Problem verursachen. –