공식 홈페이지 : https://apis.map.kakao.com/web/guide/
문서: https://apis.map.kakao.com/web/documentation/
import { useEffect, useRef } from "react";
const { kakao } = window;
const useFetchMap = (latitude, longitude) => {
const container = useRef(null);
useEffect(() => {
kakao.maps.load(() => {
const center = new kakao.maps.LatLng(latitude, longitude);
const options = {
center,
level: 4,
};
const map = new kakao.maps.Map(container.current, options);
const markerPosition = new kakao.maps.LatLng(latitude, longitude);
const marker = new kakao.maps.Marker({
position: markerPosition
});
marker.setMap(map);
});
}, [latitude, longitude]);
return { container };
};
export default useFetchMap;
useRef란? 바닐라 자바스크립트에서 특정 DOM 을 선택하기 위해서 querySelector 등의 함수를 사용하듯이, React에서도 가끔씩 DOM 을 직접 선택해야 하는 상황이 필요할 때 useRef Hook 함수를 사용한다.
import React from "react";
import useFetchMap from "../../../hooks/useFetchMap";
const lat = 위도;
const lon = 경도;
const Map = () => {
const { container } = useFetchMap(lat, lon);
return (
<div
ref={container}
style={{ width: "1265px", height: "350px", border: "1px solid black" }}
/>
);
};
export default Map;