0
votes

Axios obtient plusieurs points d'extrémité JSON et enregistrez-vous dans l'état (réacteur)

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 }));
}


4 commentaires

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


3 Réponses :


0
votes

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});
});


1 commentaires

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>. <



3
votes

Vous devez accéder aux trois réponses sous forme de trois arguments sur Axios.Pailles et renvoyer le résultat mappé xxx

Démo de travail


3 commentaires

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 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



1
votes

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: xxx

au lieu de console.log, vous pouvez également utiliser n'importe quelle fonction. Mais votre état sera mis à jour à coup sûr.


0 commentaires