1

我的反应项目中有一个可重复使用的传单地图组件,每次我搜索特定关键字时,标记和形状(栅栏)都会更新。当我重新加载父组件(地图中的初始数据加载并且没有问题)并搜索关键字(第二次地图加载)时,如果我点击地图,它将给出“无法读取 null 的属性(读取'offsetWidth ')" 。谁能帮我这个?

const MyComponent = ({ fences, markers}) => {    
let map;
let drawnItems = new L.FeatureGroup();

    useEffect(() => {
        initMap()
    }, [fences, markers]);

    function initMap() {
        let container = L.DomUtil.get('map');
        if (container != null) {
            container._leaflet_id = null;
        }
        document.getElementById('map').innerHTML = <div id='map' />;

        map = L.map('map', {
            drawControl: false
        }).setView([7.8731, 80.7718], 8);

 L.tileLayer(
            'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
                maxZoom: 18,
            }).addTo(map);

        map.addLayer(drawnItems);

      ...
      // Adding fences and markers to drawn items
      ...

    }
    return (
        <div id="map" />
    )
}
4

0 回答 0