ich ein Array mit dem folgenden Verfahren am Abrufen:verschwinden Werte this.state.array ReactJS
module.exports = {
fetchIntegrations(self) {
var encodedURI = "OMITTED";
axios.get(encodedURI).then(function (r) {
self.setState({
response: r.data,
})
})
return self
}
};
Dann habe ich das von dieser Methode nenne:
_getIntegration(){
var self = this;
var axios = require("axios");
axios.defaults.headers.common[ "Authorization"] = this.props.userInfo.isAuthorized
api.fetchIntegrations(self);
console.log("This " , this);
console.log("This.state " , this.state);
console.log("This.state.response ", this.state.response);
return this.state.response.map((integration) => {
return (<NavBarItem key={integration.identifier}
name={integration.displayName}/>);
});
}
Dies ist die NavBarItem Klasse:
class NavBarItem extends React.Component {
render() {
return(
<div className="navbaritem">
<Text className="navbaritem-name">{this.props.name}</Text>
</div>
);
}
}
Die _getIntegration Methode innerhalb dieser Layout-Klasse ist (verkürzt):
Wenn dies in der Konsole eingeloggt ist, hat es meine Antwort-Array in it mit Elementen. In diesem.Status und dieser.Status.Antwort enthält das Antwort-Array irgendwie 0 Elemente. Ich habe versucht, setState() an einigen verschiedenen Orten ohne Glück zu verwenden. Ideen, wie ich auf meine Antwort-Array-Werte zugreifen kann? Mein Ziel ist es, NavBarItems für jedes Objekt im Array zu erstellen, aber da es keine Elemente in meinem Antwort-Array gibt, passiert nicht viel :( Vielen Dank!
Zeigen Sie Ihre Komponente. – norbertpy
Die Datei console.logs wird vor der AJAX-Antwort ausgeführt. Der Abruf ist asynchron. – Hoyen
Ich möchte sehen, wo '_getIntegration' aufgerufen wird. Bearbeiten Sie Ihre Frage und fügen Sie Ihre gesamte Komponente hinzu, wenn Sie Hilfe benötigen. – norbertpy