NextJs Typescript 에서 지도API 사용할 때 marker에서 에러

[FAQ] 지도/로컬 API 문의 전 꼭 읽어 주세요.

NextJS와 Typescript 사용하여 개발하고 있습니다.
지도는 정상적으로 잘 불러와집니다.

그런데 옵션으로 marker를 추가하면 두가지 에러가 발생합니다.

  1. kakao.js:37 Uncaught TypeError: a.pc is not a function
  2. kakao.js:7 Uncaught TypeError: Cannot read properties of undefined

그리고 지도 위에 마우스를 올려서 움직이면 다음과 같은 에러가 반복적으로 발생합니다.
kakao.js:6 Uncaught TypeError: Cannot read properties of undefined (reading ‘call’)

아래는 코드입니다.

‘use client’

import React, {useEffect} from “react”;

declare global {
interface Window {
kakao: any;
}
}
export interface MapProps {
latitude: number;
longitude: number;
}

function Map({latitude, longitude}:MapProps) {
useEffect(()=>{
//can use document here
const mapScript = document.createElement(“script”);

mapScript.async = true;
mapScript.src = //dapi.kakao.com/v2/maps/sdk.js?appkey=${process.env.NEXT_PUBLIC_KAKAOMAP_KEY}&autoload=false;

document.head.appendChild(mapScript);

const onLoadKakaoMap = () => {
window.kakao.maps.load(() => {
const mapContainer = document.getElementById(“map”);

  const mapOption = {
    center: new window.kakao.maps.LatLng(latitude, longitude), // 지도의 중심좌표
    level: 3, // 지도의 확대 레벨,
  };

//여기서 부터 marker를 위해 추가한 부분
  let map =  window.kakao.maps.Map(mapContainer, mapOption);

  let markerPosition = new window.kakao.maps.LatLng(37.55465450967681, 126.97059787317687)

  let marker = new window.kakao.maps.MarKer({
    position: markerPosition
  })
  marker.setMap(map);

});

};
mapScript.addEventListener(“load”, onLoadKakaoMap);
}, [latitude, longitude])

return (<div style={{width:500, height:500}} id=“map”>)
}

export default Map;

코드 중 표시한 부분을 marker사용을 위해 추가하였는데, 에러가 납니다.
저 부분 삭제하면 에러가 나지 않습니다.

어디 부분을 잘못한 것일까요?

아래 2가지 참고해서 수정해주세요.

  1. 지도 객체를 생성할 때 new 키워드가 누락되어 있습니다.
    let map = new window.kakao.maps.Map(mapContainer, mapOption);

  2. 마커 객체에 오타가 있습니다.

new window.kakao.maps.MarKer // (X)
new window.kakao.maps.Marker // (O)

감사합니다! 글에 오타가 있었네요!
말씀 해주신 대로 수정하였는데, 오류가 그대로 입니다…!

그래도 꼼꼼하게 읽고 답글 달아주셔서 감사합니다!

달아주신 답글보고, 혹시 오타가 있나 한번 더 쭉 훑어봤습니다!!

언급해주신 부분 이외에 다른 부분에도 new 를 안붙였었네요…
정말 감사합니다. 은인이십니다.

1개의 좋아요