react-google-maps:尝试为每个标记创建一个可切换的infowindow

时间:2018-03-07 02:53:55

标签: react-google-maps

我之前已经知道类似的问题,但我已经尝试在答案中实施解决方案,似乎没有任何工作。

所以,这就是我遇到的问题:我正在使用react-google-maps来生成地图。地图有多个标记。每次我点击一个特定的标记,我都想要一个infowindow弹出。现在的情况是,我每隔一段时间点击一个标记,弹出所有标记的信息窗口,如下所示:

enter image description here

您是否愿意浏览我的代码并告诉我问题是什么:

_onObjectMatched: function (oEvent) {
    this.getView().bindElement({
        path: decodeURIComponent(oEvent.getParameter("arguments").invoicePath),
        model: "invoice"
    });
}

1 个答案:

答案 0 :(得分:0)

您已将InfoWindows映射出来并使用props.isOpen有条件地呈现它们。

InfoWindow的onClick事件接受索引参数。 但是......在onClick函数中,任何点击事件都会将isOpen切换为true(无论索引如何)

由于所有InfoWindows仅依赖于布尔值isOpen,因此单击一个将isOpen设置为true,并且所有这些都打开:)

解决这个问题的方法是存储点击标记的索引。例如:clickedMarkerIndex = x。 然后,检查{props.clickedMarkerIndex === index }并仅在InfoWindow' index匹配单击标记的索引。