✨ use-places-autocomplete 소개: Google Maps Places Autocomplete에 대한 반응 후크
13774 단어 hookreactopensourcejavascript
⚡️ 직접 해보기: https://use-places-autocomplete.netlify.app
특징
react
를 제외하고는 외부 종속성이 없습니다. 어떻게 작동합니까?
먼저
script
태그를 사용하여 프로젝트에서 라이브러리를 로드합니다.<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"></script>
구성 요소 구축을 시작합니다. 자세한 내용은 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 (
<li key={id} onClick={handleSelect(suggestion)}>
<strong>{main_text}</strong> <small>{secondary_text}</small>
</li>
);
});
return (
<div ref={ref}>
<input
value={value}
onChange={handleInput}
disabled={!ready}
placeholder="Where are you going?"
/>
{/* We can use the "status" to decide whether we should display the dropdown or not */}
{status === "OK" && <ul>{renderSuggestions()}</ul>}
</div>
);
};
쉽죠? 이것이
usePlacesAutocomplete
✨의 마법입니다. 최소한의 예를 통해 어떻게 작동하는지 보여 드리겠습니다. 그러나 WAI-ARIA compliant 및 내demo(code 확인)와 같은 키워드 지원, 키워드 지우기 버튼, 검색 기록 등과 같이 UX가 풍부한 자동 완성 구성 요소에 대해 더 많은 작업을 수행할 수 있습니다.💡 react-cool-onclickoutside is my other hook library, which can help you handle the interaction of user clicks outside of the component(s).
읽어 주셔서 감사합니다. 자세한 사용법은 프로젝트의 GitHub 페이지를 확인하세요. https://github.com/wellyshen/use-places-autocomplete
npm을 통해 배포되는 이 패키지를 설치할 수도 있습니다.
$ yarn add use-places-autocomplete
# or
$ npm install --save use-places-autocomplete
TypeScript로 작업할 때 @types/googlemaps을
devDependencies
로 설치해야 합니다.$ yarn add --dev @types/googlemaps
# or
$ npm install --save-dev @types/googlemaps
Reference
이 문제에 관하여(✨ use-places-autocomplete 소개: Google Maps Places Autocomplete에 대한 반응 후크), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wellyshen/introducing-use-places-autocomplete-react-hook-for-google-maps-places-autocomplete-41h5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)