我的反应项目中有一个可重复使用的传单地图组件,每次我搜索特定关键字时,标记和形状(栅栏)都会更新。当我重新加载父组件(地图中的初始数据加载并且没有问题)并搜索关键字(第二次地图加载)时,如果我点击地图,它将给出“无法读取 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" />
)
}