Fonction de veille pour Réagir Indigènes?
Donc je suis en train de chercher tous les lieux, compte tenu de certaines emplacement de Réagir Natif via l'API Google Places. Le problème est qu'après avoir fait le premier appel à l'API, Google ne renvoie à 20 entrées, puis renvoie une next_page_token
, pour être annexé à la même appel d'API url
. Donc, je fais une autre demande pour obtenir les 20 prochaines lieux juste après, mais il y a un petit délai (de 1 à 3 secondes) jusqu'à ce que le jeton devient réellement valable, donc ma demande d'erreurs.
J'ai essayé de faire:
this.setTimeout(() => {this.setState({timePassed: true})}, 3000);
Mais il est complètement ignoré par l'application...des suggestions?
Mise à jour
Je le fais dans mes componentWillMount
fonction (après avoir défini les variables de cours), et d'appeler la setTimeout
juste après cette ligne.
axios.get(baseUrl)
.then((response) => {
this.setState({places: response.data.results, nextPageToken: response.data.next_page_token });
});
- Pouvez-vous montrer un peu plus de votre code?
- Où êtes-vous en faveur de setTimeout() ?
- mise à jour de la question, désolé combat qui.
- pouvez-vous montrer comment vous utilisez le
timePassed
variable dans la seconde demande? Dès le départ que je peux vous dire que vous devriez probablement commencer votre délai d'attente au sein de la .ensuite, la fonction, car il est asynchrone et vous ne savez pas combien de temps s'est écoulé entre le montage, la demande et la réponse. - Vous pouvez aussi faut juste appeler
setTimeout
et pasthis.setTimeout
- oui j'ai essayé de le faire de cette manière aussi, je ne suis pas en utilisant la
timePassed
variable dans la deuxième demande, je ne suis pas sûr de ce que tu veux dire. - Ce que je veux dire est que vous êtes à l'exécution d'une deuxième demande au bout de trois secondes pour obtenir plus de données à droite? De toute évidence, cela ne peut pas arriver dans componentWillMount depuis le composant a déjà monté avant la réponse est même retourné. Je suis juste curieux de voir comment votre le jeu de données suivant.
- Je n'étais pas au courant qu'il allait monter avant le
setTimeout
la fonction a été exécutée... - Laissez-nous continuer cette discussion dans le chat.
Vous devez vous connecter pour publier un commentaire.
Ce que j'ai compris, c'est que vous essayez de faire une extraction sur la base du résultat d'une autre extraction. Donc, votre solution est d'utiliser un Délai d'attente de deviner quand la demande va se terminer et ensuite faire une autre demande, non ?
Si oui, peut-être que ce n'est pas la meilleure solution à votre problème. Mais le code suivant est comment je fais pour utiliser les délais d'expiration:
L'approche que je voudrais faire est d'attendre jusqu'à ce que l'extraction des finitions, alors je voudrais utiliser la fonction de rappel pour le même chercher à nouveau avec des paramètres différents, dans votre cas, le
nextPageToken
. Je ne ce à l'aide de l'ES7 async & attendre de la syntaxe.Si j'ai mal compris quelque chose ou que vous avez des questions, n'hésitez pas à demander!
J'espère que cela aide.
essayez cela, il a travaillé pour moi: