Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使程序生成的映射无效_Jquery_Node.js_Reactjs_Leaflet_React Leaflet - Fatal编程技术网

Jquery 使程序生成的映射无效

Jquery 使程序生成的映射无效,jquery,node.js,reactjs,leaflet,react-leaflet,Jquery,Node.js,Reactjs,Leaflet,React Leaflet,我需要使用以下代码使页面加载后生成的一些react传单地图无效: maps = []; mapData = mapData.map(function(assetf,index){ return( assetf.map(function(asset, index){ var ind = index; var indHash = "#" + ind; var indExtra = ind + "ex"; maps.p

我需要使用以下代码使页面加载后生成的一些react传单地图无效:

maps = [];
mapData = mapData.map(function(assetf,index){
    return(
      assetf.map(function(asset, index){
        var ind = index;
        var indHash = "#" + ind;
        var indExtra = ind + "ex";
        maps.push(indExtra);
        return(
          <li key={ind}>
            <div>{asset.description}</div>
            <Map id={indExtra} style={mapStyles} center={asset.point.coordinates} zoom={7}>
            <TileLayer
            url='http://{s}.tile.osm.org/{z}/{x}/{y}.png'
            attribution='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
            />

            </Map>
          </li>
        )
      })
    )
  });
  var i;
  for(i=0; i < maps.length; i++){
      maps[i].invalidateSize(true);
  }

谢谢,Ed.

您正在将地图ID推入阵列,而不是传单地图。这就是为什么不能仅对一个字符串调用任何传单API函数(在您的例子中是invalidateSize)

给地图一个
ref
比如:


然后使用存储在“贴图”数组中的参照ID访问参照并使其无效。也不要忘记使用传单元素

 var i;
  for(i=0; i < maps.length; i++){
      this.refs[maps[i]].leafletElement.invalidateSize(true);
  }
vari;
对于(i=0;i
<Map ref={indExtra} style={mapStyles} center={asset.point.coordinates} zoom={7}>
 var i;
  for(i=0; i < maps.length; i++){
      this.refs[maps[i]].leafletElement.invalidateSize(true);
  }