Импорт файла JS API Карт Google с помощью React - PullRequest
1 голос
/ 08 апреля 2019

Я пытаюсь интегрировать функцию многоугольника containsLocation в свое приложение реагирования. В настоящее время это поддерживается только фактической библиотекой JS, импортированной с добавленным тегом сценария maps.googleapis.com. При этом я продолжаю получать ошибку no-undef при попытке использовать конструктор maps.Polygon (в настоящее время я использую приложение create-реагировать с настройками по умолчанию). Есть ли способ предотвратить это?

Код, вызывающий проблему:

var addedPoly = {
     polygon: maps.Polygon({
                            paths: parsedCoords
                        })
}

1 Ответ

0 голосов
/ 09 апреля 2019

create-react-app использует Eslint , чтобы скопировать ваш код.Учитывая, что вы включили библиотеку карт Google через тег script, она доступна глобально, в то время как create-реагировать-приложение (с его конфигурацией eslint) не ожидает глобальные переменные, если они не объявлены как таковые.

В документации eslint вы можете увидеть ошибку no-undef

Существует несколько вариантов решения этой проблемы.Во-первых, если он глобальный, он будет доступен через переменную окна.

const maps = window.maps;

Таким образом, он становится локальной переменной.

В противном случае вы можете добавить файл .eslintrc (еслион еще не существует), где вы устанавливаете карты как глобальные

"globals": {
    "maps": true
}

в последнюю очередь, но не в последнюю очередь, вы можете добавить в начало вашего файла следующий комментарий

/*global maps*/

, которыйтакже будет работать.

Преимущество второго варианта перед остальными заключается в том, что вам нужно реализовать его только один раз, остальные два параметра подразумевают изменения в каждом файле, где используется maps.Это зависит от вас

...