React 애플리케이션의 Google지도 인포 박스에 문제가 있습니다. 내 목표는 Google지도 인스턴스에서 빈 InfoBox를 연 다음 ReactDOM.render를 사용하여 내부 컴포넌트를 배치하는 것입니다. 구성 요소는 탭 집합으로 구성되며 각 탭 창은 열 때 redux 및 thunk를 통해 API 호출을합니다.렌더링 요소를 GoogleMaps 인포 박스에 적용 - 클릭 연결을 중지합니다.
이 모든 것이 정상적으로 작동하며 멋지게 표시됩니다. 문제는 InfoBox를 실제로 클릭하면 발생합니다.
enableEventPropagation = TRUE : 구성 요소 작품, 모든 탭과 버튼, 그러나 어떤 마커 아래에 내 인포 박스가 될 것입니다 나는 참 또는 거짓하기 위해 enableEventPropagation을 변경하여이 두 가지 방법 중 하나를 작동시킬 수 있습니다 InfoBox의 오른쪽 부분을 클릭하면 응용 프로그램의 상태와 흐름이 완전히 끊어집니다.
enableEventPropagation = false : 클릭이지도로 전달되지 않지만 반응 요소의 클릭 이벤트가 작동하지 않습니다. 탭 없음, 버튼 없음 : 없음 좋아 보이지만 전혀 작동하지 않습니다. 나는 다음과 같은 솔루션을 시도
renderInfoBox() { let {map, google, infoBox} = this.props; let markerElement = MarkerElementService.getMarkerElement(infoBox.ui.markerId); this.infoBox = new this.infoBoxClass({ content: this.refs.infoBoxHolder, enableEventPropagation: false, pixelOffset: new google.maps.Size(10, -275), maxWidth: 350, zIndex: 99999999, infoBoxClearance: new google.maps.Size(75, 75) }); ReactDOM.render( <Provider store={AppStore}> <ThemeProvider theme={Theme}> <InfoBoxComponent google={google} onClose={this.closeButtonClicked.bind(this)} /> </ThemeProvider> </Provider>, this.refs.infoBoxHolder, () => { this.infoBox.open(map, markerElement); } ); } render() { return ( <div ref="infoBoxHolder" /> ); }
:
Google지도 오버레이 스와핑
은 여기 내 인포 박스를 만들고 ReactDOM으로 렌더링을위한 내 코드입니다. 똑같은 문제는 사실 InfoBox가 InfoBox 애드온을 보았을 때 OverLay에 대한 래퍼이며 이러한 문제 중 일부를 제거하는 데 도움이되지만 여전히 비 대화식 일 것이라고 가정합니다.
내 구성 요소 내부의 다양한 지점에서 이벤트 전파를 사용하지 않도록 설정했지만 효과는 하위 구성 요소가 작동하지 않음을 의미하는 DOM 트리 아래로 이벤트 전파를 사용하지 않도록 설정합니다. 미친!
내 유일한 옵션 왼쪽이 렌더링 한 후 순차적으로 그 지역에있는 모든 마커를 사용하지 됐어요 일단 어떻게 든 인포 박스의 위도/LNG의 경계를 계산하는 것 같다,하지만 내가 원하는 말도 해키 부하의 피하기 위해!
아니면 완전히 잘못된 접근 방식이 있습니까?
JS 바이올린을 올리시겠습니까? 나는 googlemaps 오버레이를 사용하여 사용자 정의 인포 박스 오버레이를 직접 만들었습니다.이 오버레이는 이와 비슷하게 들립니다. 나는 당신이 묘사하는 어떤 문제도 얻지 못한다. 더 이상 보지 않고 문제의 원인을 밝히기는 어렵습니다. 나는 포인터 이벤트를 사용하는 솔루션이 있다면 방황 했는가? –
[this] (http://stackoverflow.com/q/24374588/3125070)와 유사 하나 또는 [이] (http://stackoverflow.com/q/23544327/3125070) 하나? –