1

je veux rendre le composant Searchbox, je l'ai copié exactement dans mon application, mais je reçois une erreur:Mon script pour réagir-google-cartes ne pas les charges

error Line 44: 'google' is not defined no-undef Line 79: 'google' is not defined no-undef 

je l'ai déjà chargé mon

<script async defer src="https://maps.googleapis.com/maps/api/js?key=MY_KEY_IS_HERE"></script> 

dans la tête de mon index.html mais il me montre quand même l'erreur. Se pourrait-il que index.html ne puisse pas charger mon script?

j'ai créé mon application avec créer une réaction-app

+1

Vous chargez l'API js de manière asynchrone, mais il semblerait que votre propre JS essaie probablement d'y accéder avant de le charger. À quoi ressemble le reste de votre JS? Vous devriez probablement simplement ajouter un paramètre 'callback' à l'appel de l'API Maps afin qu'il n'appelle votre fonction qu'une fois chargée. – duncan

+0

Pouvez-vous fournir un code source plus pertinent? –

Répondre

1

Il est probablement votre linter se plaindre une variable non définie. Étant donné que "google" est défini dans un script qui se charge en externe avec la balise <script>, votre linter ne le sait pas. Essayez d'ajouter une exception pour la variable. Dans eslint vous ajouteriez cette ligne en haut du fichier où vous accédez à la variable: /*global google*/ Mais puisque vous avez l'attribut async dans votre balise <script>, votre script peut encore s'exécuter avant que l'API de cartes ne soit exécutée. Une solution consisterait à supprimer les attributs async et defer. Mais si vous voulez vraiment que l'API maps se charge de manière asynchrone, vous pouvez essayer une bibliothèque supplémentaire, comme react-async-script-loader. Voici un discussion à propos d'un problème similaire.