以编程方式创建以组件填充的Popup

时间:2018-06-12 14:19:56

标签: reactjs leaflet react-leaflet

由于项目要求,我无法在渲染上使用Map组件,而是使用<div id="map"/>我可以使用地图进行实例化。

我不知道如何使用自定义组件以编程方式为其添加Popup

我知道我可以去:

 this.popup.setLatLng(latLng);
 this.popup.setContent("<div>Simple content</div>");
 this.popup.openOn(map);

但这并不允许我使用React生命周期设置自定义组件。

使用时我能看到弹出窗口:

<Popup position={this.state.position} key={this.state.key}>
    <MyChartComponent/>
</Popup>

有没有办法可以通过编程方式实现这一目标?

1 个答案:

答案 0 :(得分:0)

我设法通过使用render中的react-dom来实现我想要的目标:

this.popup.setContent('');
this.popup.setLatLng(latlng);

if (!this.popup.isOpen()) {
    this.popup.openOn(map);
    render(<MyChartComponent />, this.popup._contentNode);
}