마커와 mouse 이벤트 문제

안녕하세요
리액트에서 사용중인데요, npm start를 통해 실행을 하면 처음에는 마커가 표시가 안되고 마커부분을 주석처리하고 다시 푼 후에 저장해야 마커가 나타나고 있습니다.
그리고 마커 마우스오버 시에 오버레이를 띄워주고 싶은데 마커의 범위가 작은건지 마우스아웃효과와 섞여서 렌더링이 됩니다.

import React, { useEffect } from 'react';

import './Overlay.css';

const { kakao } = window;

const MapContainer = ({ productInfos }) => {

  useEffect(() => {

    const container = document.getElementById('myMap');

    const options = {

      center: new kakao.maps.LatLng(33.450701, 126.570667),

      level: 10,

    };

    const map = new kakao.maps.Map(container, options);

    const overlayInfos = productInfos?.map(info => {

      return {

        title: info.name,

        lat: info.latitude,

        lng: info.longtitude,

        img: info.image_url[0],

        price: info.price,

        region: info.region,

        desc: info.description,

      };

    });

    overlayInfos.forEach(el => {

      new kakao.maps.Marker({

        map: map,

        position: new kakao.maps.LatLng(el.lat, el.lng),

        title: el.title,

      });

      let marker = new kakao.maps.Marker({

        map: map,

        position: new kakao.maps.LatLng(el.lat, el.lng),

        title: el.title,

      });

      let content =

        '<div class="overlayWrap">' +

        `    <img class="overlayImg" src=${el.img}/>` +

        '    <div class="accommInfoWrap">' +

        `        <h1 class="accommName">${el.title}</h1>` +

        `        <p class="accommRegion">${el.region}</p>` +

        `        <p class="accommDesc">${el.desc}</p>` +

        `        <p class="accommPrice">${Number(

          el.price

        ).toLocaleString()}</p>` +

        '    </div>' +

        '    <div class="overlayArrow">' +

        '</div>';

      let position = new kakao.maps.LatLng(el.lat, el.lng);

      let customOverlay = new kakao.maps.CustomOverlay({

        position: position,

        content: content,

      });

      kakao.maps.event.addListener(marker, 'mouseover', function () {

        customOverlay.setMap(map);

      });

      kakao.maps.event.addListener(marker, 'mouseout', function () {

        customOverlay.setMap();

      });

    });

  }, []);

  return (

    <div

      id="myMap"

      style={{

        width: '100%',

        height: '100%',

      }}

    />

  );

};

export default MapContainer;

ezgif.com-gif-maker (7)

mouseout 이벤트에
setTimeout 함수를 걸어서 오버레이가 버벅거리는 문제는 어떻게든 해결이 되긴 했는데
저렇게 빠르게 나타났다가 하는건 뭔가 문제가 있는게 맞는건가요?

아래 답변 참고해서 커스텀 오버레이가 마커와 겹치지 않도록 스타일 조정 해주세요.
https://devtalk.kakao.com/t/customoverlay/60232/2

1개의 좋아요