1 回答

TA貢獻1797條經驗 獲得超4個贊
來自文檔1、文檔2
Map:頂級組件,實例化 Leaflet 地圖并將其提供給其子組件。
所有組件都是 Leaflet 元素和層的 React 包裝器,它們需要一個映射實例,因此必須包含在頂級組件中。
LayersControl.Overlay 使用 Overlay 類(doc),并且 Overlay 類內部有以下代碼:
?class Overlay extends ControlledLayer {
? constructor(props: ControlledLayerProps) {
? ? super(props)
? ? this.contextValue = {
? ? ? ...props.leaflet,
? ? ? layerContainer: {
? ? ? ? addLayer: this.addLayer.bind(this),
? ? ? ? removeLayer: this.removeLayer.bind(this),
? ? ? },
? ? }
? }
? addLayer = (layer: Layer) => {
? ? this.layer = layer // Keep layer reference to handle dynamic changes of props
? ? const { addOverlay, checked, name } = this.props
? ? addOverlay(layer, name, checked)
? }
}
在構造函數中addLayer分配了一個方法,該方法是this.addLayer. addOverlay內部this.addLayer正在通過 props 進行解構。此時 props 很可能不包含 addOverlay 方法,因此無法檢索,因此會發生錯誤。
結果,您無法LayersControl.Overlay按照您想要的方式使用。沒有這樣的例子,我認為這是不可能的,因為地圖實例沒有按應有的方式提供LayersControl.Overlay
添加回答
舉報