[FAQ] 지도/로컬 API 문의 전 꼭 읽어 주세요.
https://devtalk.kakao.com/t/faq-api/125610
변경사항이 없는데 잘 되던 부분에서 에러가 발생했습니다,
계속 확인 중에 있고 제가 놓친 부분이 있는 것 같지만 혹시 명확한 처리 방안이 있을까 싶어 문의드립니다.
위와 같이 코드 시 mapManager?.put(kakao.maps.drawing.OverlayType.POLYGON, path); 부분에서 아래 에러가 발생합니다, 어떤 조치를 취해야할지 알 수 있을까요?
#에러 메세지
Uncaught TypeError: Failed to execute ‘insertBefore’ on ‘Node’: parameter 1 is not of type ‘Node’.
첨부 코드로는 해당 오류가 발생하지 않습니다.
혹시 일반 Dom이 아닌 Shadow Dom을 사용하고 계신가요?
이전 유사 오류로 해결하신 분 답변 참고 부탁드립니다.
친절한 답변 감사합니다.
그리고 비슷한 문제를 겪을 다른 분들을 위해 해결방법을 남기자면,
문제의 원인은 kakao map이 붙는 div 노드가 제가 만든 웹 컴포넌트 내부 shadowDOM에 있어서 polyline의 setMap호출 시 내부적으로 document.getElementById를 호출할 때 shadowDOM 내에 있는 노드는 찾을 수가 없어서 예외가 발생했던 것이었습니다.
해당 웹 컴포넌트에서 shadowDOM을 open하지 않도록 하니 문제가 없어졌습니다.
그리고 추가 문의하실 경우 스크린 샷이 아닌 현상을 확인할 수 있는 소스 코드를 첨부해주세요.
답변 감사합니다! 링크 주신 방안은 먼저 확인을 했어서 Shadow Dom 사용 여부도 확인했으나 사용되지 않고 있었습니다!
현재는 코드가 너무 길어져 하나씩 다시 올려 수정해 해결이 되었습니다.
단편적으로 판단해 보았을 때 리액트 환경에서 작업 중에 useEffect에서 put이 사용되는 함수를 실행하던 걸 useEffect의 dependency를 변경해 해결이 된 것 같습니다, 더 자세하고 근본적인 원인은 다시 천천히 파악하려고 합니다, 감사합니다!
1개의 좋아요