YOOO парней! с Использовать-места-автозаполнение Вы можете построить свои собственные места AutoComplete UI, как следующая демонстрация за 10 минут, Не шучу
⚡️. Попробуйте себя: https://use-places-autocomplete.netlify.app.
Функции
- 🧠 Обеспечивает интеллектуальные места предложений на питание Google Maps Места API Отказ
- 🎣 Строит свой собственный индивидуальный автозаполненный интерфейс, реагирующий крючок Отказ
- 🔧 Утилита функции Чтобы сделать геокодирование и получить географические координаты, используя Google Maps Geocoding API Отказ
- 🤑 Встроенный Механизм кэширования Для вас, чтобы сохранить стоимость Google API.
- 💰 Встроенный механизм Debouting для вас, чтобы снизить стоимость Google API.
- 🚀 Поддерживает асинхронный Google Script Loading.
- 📜 Поддерживает TeampScript Тип определения.
- ⌨️. Создает богатый UX компонент (например, совместимый WAI-ARIA и поддержка ключевых слов) через комплексный Демо-код Отказ 🦔 крошечный размер (
- ~ 1.7 Kb gzipped ). Нет внешних зависимостей, в сторону для реагировать
Отказ
Как это работает?
Во-первых, используйте Сценарий
Теги для загрузки библиотеки в вашем проекте.
Начните создавать наш компонент. Проверьте API чтобы узнать больше.
import usePlacesAutocomplete, { getGeocode, getLatLng, } from "use-places-autocomplete"; import useOnclickOutside from "react-cool-onclickoutside"; const PlacesAutocomplete = () => { const { ready, value, suggestions: { status, data }, setValue, clearSuggestions, } = usePlacesAutocomplete({ requestOptions: { /* Define search scope here */ }, debounce: 300, }); const ref = useOnclickOutside(() => { // When user clicks outside of the component, we can dismiss // the searched suggestions by calling this method clearSuggestions(); }); const handleInput = (e) => { // Update the keyword of the input element setValue(e.target.value); }; const handleSelect = ({ description }) => () => { // When user selects a place, we can replace the keyword without request data from API // by setting the second parameter as "false" setValue(description, false); clearSuggestions(); // Get latitude and longitude via utility functions getGeocode({ address: description }) .then((results) => getLatLng(results[0])) .then(({ lat, lng }) => { console.log("📍 Coordinates: ", { lat, lng }); }) .catch((error) => { console.log("😱 Error: ", error); }); }; const renderSuggestions = () => data.map((suggestion) => { const { id, structured_formatting: { main_text, secondary_text }, } = suggestion; return (
- {renderSuggestions()}
Легко справа? Это магия UsePlacesautocomplete
✨. Я просто покажу вам, как он работает через минимальный пример. Однако больше вещей вы можете сделать для UX богатого автозаполнения компонента, как Соответствует вай-арии и ключевое слово поддержка как моя демонстрация (Проверьте код Код ), Ключевое слово Clear Button, История поиска и т. Д.
💡 React-cool-onclickoutside Является ли моя другая библиотека крюка, которая может помочь вам справиться с взаимодействием пользователя, щелчников за пределами компонента (ы).
Спасибо за чтение, для получения дополнительных деталей использования Оформить заказ Страница GitHub проекта: https://github.com/wellyshen/use-places-autocomplete
Вы также можете установить этот пакет распределяется через NPM Отказ
$ yarn add use-places-autocomplete # or $ npm install --save use-places-autocomplete
При работе с Teadercript вам нужно установить @ Типы/googlemaps как Devdependonds
Отказ
$ yarn add --dev @types/googlemaps # or $ npm install --save-dev @types/googlemaps
Оригинал: “https://dev.to/wellyshen/introducing-use-places-autocomplete-react-hook-for-google-maps-places-autocomplete-41h5”