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:
Aidez-moi ici.
3 Réponses :
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
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
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);
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.
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.
Dans quel os avez-vous vérifié? Android ou iOS?
J'utilise iPhone8 via expo.