这个问题是关于询问信息的。
我浏览了LayersControl.Overlay文档,
在使用此代码段时,
<LayersControl.Overlay name="Marker with popup">
<Marker position={[51.51, -0.06]}>
<Popup>
<span>
A pretty CSS3 popup. <br /> Easily customizable.
</span>
</Popup>
</Marker>
</LayersControl.Overlay>
此代码段在LayersControl
堆栈框中生成名称为Marker with popup
的复选框
勾选Marker with popup
复选框,它将在给定位置弹出marker
。
在这里,我想在boolean
中更新state
,以切换复选框的值。
在删除内部的Marker
代码并在下面的代码段中添加状态更改条件后,
<LayersControl.Overlay name="Marker with popup">
{ this.setState({ variableToBeChanged : true }) };
</LayersControl.Overlay>
相反,添加后,该复选框将从堆栈框中消失。
那么,您能告诉我如何在此Overlay
组件中放置这种条件而不会取消复选框吗?
答案 0 :(得分:0)
首先,您需要了解react-leaflet的工作原理-它只是对Leaflet.js的包装。因此,在某些情况下,您无法直接控制UI元素及其行为。 在这种情况下,您只能切换复选框抛出Leaflet控件 然后听发生什么事
//If you turn on layer
map.on('overlayadd', this.setState({ variableToBeChanged : true }));
//If you turn off layer
map.on('overlayremove', this.setState({ variableToBeChanged : false }));