J'essaie de mettre à jour mon Axios Obtenir une demande de 1 point d'extrémité JSON à 3 points finaux JSON, puis enregistrez les messages dans l'état du composant.
https://codesandbox.io/s/multiple-get-requests-gerjq - j'ai console.log (messages) mais cela ne semble pas que l'un des objets ne soit enregistré dans l'état. P>
aucune idée où je vais mal? P>
private getPosts() {
axios
.all([
axios.get("https://cors-anywhere.herokuapp.com/" + "https://...."),
axios.get("https://cors-anywhere.herokuapp.com/" + "https://...."),
axios.get("https://cors-anywhere.herokuapp.com/" + "https://www..."),
axios.get("https://cors-anywhere.herokuapp.com/" + "http://api...."),
axios.get("https://cors-anywhere.herokuapp.com/" + "https://www..."),
axios.get("https://cors-anywhere.herokuapp.com/" + "https://www...")
])
.then(axios.spread((response =>
response.data.map(post => ({
id: `${ post.Id || post.jobId }`,
name: `${ post.Name || post.advertisements[0].title.localization[1].value }`,
company: `${ post.Company || 'Ohly' }`,
summary: `${ post.Summary }`
}))
)))
.then(posts => {
this.setState({
posts,
isLoading: false
});
})
// Error catching
.catch(errors => this.setState({ errors, isLoading: false }));
}
3 Réponses :
Pour Axios Multi Demande Veuillez suivre ce modèle
axios.all([
axios.get('http://google.com'),
axios.get('http://apple.com')
]).then(axios.spread((googleRes, appleRes) => {
this.setState({google: googleRes, apple: appleRes});
});
Codesandbox.io/s/MultiPle-Get-Requests-gerjq - Pourriez-vous Veuillez éditer ceci pour le faire fonctionner dans ce modèle? Je suis un peu perdu>. <
Vous devez accéder aux trois réponses sous forme de trois arguments sur Axios.Pailles et renvoyer le résultat mappé Démo de travail P> P>
Cela ressemble à la solution correcte! Codesandbox.io/s/MultiPle-Get-Requests-gerjq - J'ai Mise en œuvre ici mais ne constate toujours pas que des messages lorsque je console Journal: / Pouvez-vous corriger la liaison de démonstration de travail afin que je puisse voir cette solution fonctionner?
Votre Démo de travail code> est lié à la question actuelle
@Bennkingy Si vous ne savez pas combien de demandes seront faites, vous pouvez utiliser cette solution dynamique: CODESANDBOX.IO/s/MULTIPLE-GET-RequestS-7LM42
Je recommanderais au lieu d'une installation normale, essayez d'utiliser SSTATE avec la fonction de rappel.
Il suffit de remplacer votre code setState avec le code ci-dessous: au lieu de console.log, vous pouvez également utiliser n'importe quelle fonction. Mais votre état sera mis à jour à coup sûr. p> p>
vous ne les configurez pas dans l'état n'importe où dans votre code, vous recherchez simplement les données.
.Ce (posts => {this.setstate ({posts, ischarger: false});}) - je le réglais ici? : /
Vous devez modifier votre question pour inclure ce code alors, comme il s'agit désormais de récupérer les données.
J'ai inclus un lien vers le code complet, mais d'accord va l'ajouter dans