最简单且完整描述的解决方案。
infoWindow本身应该只包含一个具有唯一 id 的占位符div:
<InfoWindow
marker={this.state.activeMarker}
visible={this.state.showingInfoWindow}
onOpen={e => {
this.onInfoWindowOpen(this.props, e);
}}
>
<div id="xyz" />
</InfoWindow>
在Mapcontainer内部,您定义了一个 onInfoWindowOpen 回调,它插入一个带有 onClick 事件的组件/容器并将其渲染到占位符div:
onInfoWindowOpen = () => {
const button = (<button
onClick={
() => {
this.viewClinic(this.state.selectedPlace.slug)
}
}>
View Details
</button>);
ReactDOM.render(React.Children.only(button),document.getElementById("xyz"));
}
这是一个工作示例:
一个更完整的示例MAP、Marker和InfoWindow:
如果您有任何问题,请发表评论。