1
votes

Rejet de promesse non géré: Erreur: Erreur réseau

J'essaie d'obtenir des données à partir d'une API.

J'ai fait ceci:

  Running application on Himanshu.
  Promise {
  "_40": 0,
  "_55": null,
  "_65": 0,
  "_72": null,
  }

[Unhandled promise rejection: Error: Network Error]
- node_modules\axios\lib\core\createError.js:15:17 in createError
- node_modules\axios\lib\adapters\xhr.js:78:22 in handleError
- node_modules\event-target-shim\dist\event-target-shim.js:818:39 in EventTarget.prototype.dispatchEvent
- node_modules\react-native\Libraries\Network\XMLHttpRequest.js:574:29 in setReadyState
- node_modules\react-native\Libraries\Network\XMLHttpRequest.js:388:25 in __didCompleteResponse
- node_modules\react-native\Libraries\vendor\emitter\EventEmitter.js:190:12 in emit
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:436:47 in __callFunction
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:111:26 in __guard$argument_0
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:384:10 in __guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:110:17 in __guard$argument_0
* [native code]:null in callFunctionReturnFlushedQueue

Je veux obtenir des données en utilisant get requests.

Dans le terminal, j'obtiens ceci:

const testScreen=()=>{

const c =  axios.get("http://localhost:3000/unverifiedProperty/warehouse",{
    headers:{
        'Authorization':'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InN1dGhhcmhpbWFzbmh1OThAZ21haWwuY29tIiwiaWF0IjoxNTgzODY0NjgwfQ.fxclNhIaNkTnINwOinqFRitX_AA7nQCrLtaFBLY99Tc'
    }
})
console.log(c)

return(
    <View>
        <Text>This is test Screen</Text>

    </View>
)}

Je me suis assuré en utilisant Postman que je n'ai pas de problème de réseau. Vous pouvez vérifier cette capture d'écran: entrez la description de l'image ici

Aidez-moi ici.


2 commentaires

Dans quel os avez-vous vérifié? Android ou iOS?


J'utilise iPhone8 via expo.


3 Réponses :


0
votes

Premièrement, la fonction test screeen fermant le crochet (}) est manquante.

Deuxièmement, axios.get (ou toute autre méthode) renvoie une promesse. pour accéder à votre c, vous devez faire quelque chose comme. si la promesse échoue, elle sera mise en cache dans la méthode .catch, vous pouvez la consigner et voir s'il y a eu un problème

const c =  axios.get("http://localhost:3000/unverifiedProperty/warehouse",{
    headers:{
        'Authorization':'Bearer 0000000'
    }
}).then(res=>res)
.catch(err=>err)

voici le lien pour savoir comment les promesses fonctionnent https://developer.mozilla.org/en-US/docs/ Web / JavaScript / Reference / Global_Objects / Promise


3 commentaires

En utilisant cela, au moins le réchauffement a disparu, mais la réponse prometteuse est vide. Si je change "localhost" en adresse IP, les choses ne fonctionnent pas du tout dans Postman.


pouvez-vous s'il vous plaît dire la version ios?


Je suis sur iOS 13.3.1



0
votes

Voici un exemple axios.get pour obtenir des données du serveur

http://10.0.2.2:3000/unverifiedProperty/warehouse

Je pense que votre problème concerne le nom localhost si vous testez sur l'émulateur Android

Au lieu de localhost , essayez cette adresse IP 10.0.2.2

Comme ceci:

const c = axios
  .get("http://localhost:3000/unverifiedProperty/warehouse", {
    headers: {
       Authorization: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InN1dGhhcmhpbWFzbmh1OThAZ21haWwuY29tIiwiaWF0IjoxNTgzODY0NjgwfQ.fxclNhIaNkTnINwOinqFRitX_AA7nQCrLtaFBLY99Tc"
    }
  })
  .then(res => res) //Response from the server
  .catch(err => err); 


1 commentaires

Je ne teste pas sur l'émulateur Android. Au lieu de cela, j'utilise l'iPhone 8 via expo. De plus, votre réponse résout les messages d'avertissement mais la réponse de promesse est toujours nulle.



0
votes

Parfois, si nous utilisons Localhost, des erreurs se produisent généralement lorsque vous rencontrez, essayez d'utiliser l'adresse IP de votre ordinateur.

Si vous êtes un utilisateur Linux ou Mac, vous pouvez vérifier par ifconfig

Si vous êtes un utilisateur Windows, vous pouvez utiliser la commande: ipconfig dans cmd

Remplacez ensuite localhost par votre adresse IP.


0 commentaires