繁体   English   中英

单张弹出窗口无法打开(React)

[英]Leaflet popup won't open (React)

我正在为一个反应应用程序的地图视图工作,我正在使用Leaflet( react-leaflet )。 我能够在地图上绘制标记,但是我点击它们的弹出窗口在点击时不会打开。 我首先尝试使用<Marker><Popup>组件,但是这个 Github问题表明,从地图组件中抓取传单地图对象并明确地将标记绑定到它可能会更好。 这就是我所拥有的:

componentDidUpdate() {
    this.map = this.refs.map.leafletElement;
    this.state.rows.map((row) => {
        var marker = L.marker([row.coordinate.latitude, row.coordinate.longitude]);
        marker.addTo(this.map);

        var popupText = util.format('<b>%s</b>', row.venue)
        for(var i = 0; i < row.beers.length; i++){
            var beer = row.beers[i];
            popupText += util.format('<br>%s: %s - %d', beer.brewery, beer.name, beer.rating)
        }

        marker.bindPopup(popupText);
        //marker.on('click', function(e){console.log('clicked!')})
    });
}

render(){
    const cover = {position: 'absolute', left: 0, right: 0, top: 50, bottom: 0};
    return(
        <div>
            <Map scrollWheelZoom={false} center={this.state.position} zoom={14} style={cover} ref="map">
                <TileLayer
                  url='http://{s}.tile.osm.org/{z}/{x}/{y}.png'
                  attribution='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
                />
            </Map>
        </div>
    );
}

即使我取消注释marker.on('click'...)行, console.log似乎永远不会触发。 任何人都对可能发生的事情有任何想法?

问题 已于2015年10月7日过期。 添加具有动作侦听器的子项已得到修复。 以下是如何在弹出窗口中添加缩放操作的示例。

<Marker position={position}>
    <Popup>
      <span>
        <button onClick={this.zoomOut}>
          Zoom out
        </button >
        <button onClick = {this.zoomIn}>
          Zoom in
        </button>
      </span>
    </Popup >
  </Marker>

这个jsfiddle是一个工作的例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM