230627 React에서 카카오지도 사용하는 방법
import { useEffect, useRef } from "react";
const KakaoMap = () => {
const mapRef = useRef();
useEffect(() => {
const container = document.getElementById("map");
const options = {
center: new window.kakao.maps.LatLng(33.450701, 126.570667),
level: 3,
};
mapRef.current = new window.kakao.maps.Map(container, options);
}, []);
return (
<>
<div
id="map"
style={{ width: "500px", height: "500px", borderRadius: "10px" }}
></div>
</>
);
};
export default KakaoMap;
확대 축소 시 잔상 문제
확대하거나 축소할 때 회색 뒷배경이 보이지 않고 처음 맵이 계속 보이는 문제
현상
확대 축소 시 잔상 원인
맵이 여러 번 렌더링 되어 겹쳐져 있기 때문.
일반적인 경우 create react app을 사용하여 리액트 앱을 만들게 되는데
StrictMode 모드로 인해 map을 불러오는 함수를 두 번 실행하기 때문
확대 축소 시 잔상 해결 방법
StrictMode 모드 제거 하기
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<App />);
StrictMode 모드 때문이 아닌 경우
StrictMode 모드 때문이 아닌 경우라도 kakao.maps.Map()함수를 여러 곳에서 호출하는지,
리렌더링으로 인해 재호출 되는지 확인하기
'내일배움캠프' 카테고리의 다른 글
230629 React.Children 사용해보기 (0) | 2023.06.29 |
---|---|
230628 카카오지도로 장소와 지역 검색하기 (0) | 2023.06.28 |
230626 리액트&파이어베이스 팀 프로젝트 시작 (0) | 2023.06.26 |
230625 내일배움캠프 6주차 WIL (0) | 2023.06.25 |
230623 Framer(프레이머)로 Login Form(로그인 폼) 만들기 / 프레이머 사용법 (0) | 2023.06.23 |