我之前已经知道类似的问题,但我已经尝试在答案中实施解决方案,似乎没有任何工作。
所以,这就是我遇到的问题:我正在使用react-google-maps来生成地图。地图有多个标记。每次我点击一个特定的标记,我都想要一个infowindow弹出。现在的情况是,我每隔一段时间点击一个标记,弹出所有标记的信息窗口,如下所示:
您是否愿意浏览我的代码并告诉我问题是什么:
_onObjectMatched: function (oEvent) {
this.getView().bindElement({
path: decodeURIComponent(oEvent.getParameter("arguments").invoicePath),
model: "invoice"
});
}
答案 0 :(得分:0)
您已将InfoWindows映射出来并使用props.isOpen
有条件地呈现它们。
InfoWindow的onClick事件接受索引参数。
但是......在onClick
函数中,任何点击事件都会将isOpen切换为true(无论索引如何)
由于所有InfoWindows仅依赖于布尔值isOpen,因此单击一个将isOpen
设置为true
,并且所有这些都打开:)
解决这个问题的方法是存储点击标记的索引。例如:clickedMarkerIndex = x
。
然后,检查{props.clickedMarkerIndex === index }
并仅在InfoWindow' index匹配单击标记的索引。