Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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
Javascript 单击列表按钮时,如何使传单弹出显示_Javascript_Reactjs_Leaflet_React Leaflet - Fatal编程技术网

Javascript 单击列表按钮时,如何使传单弹出显示

Javascript 单击列表按钮时,如何使传单弹出显示,javascript,reactjs,leaflet,react-leaflet,Javascript,Reactjs,Leaflet,React Leaflet,我正试着用传单测试一些东西。我在地图上显示了两台不同的机器,当我单击一个特定的列表按钮(以机器id区分)时,它会将地图的中心移动到该机器的位置坐标。弹出窗口已经添加,但它们仅在我单击地图上的标记时显示。我希望每当我单击列表按钮时,弹出窗口都会自动显示(目前我必须单击地图上的标记才能弹出),它应该像通常的正常行为一样关闭(默认情况下)。你知道我该怎么做吗 PS:我已经尝试使用REF,即使这样,它也部分起作用。 导出默认类App扩展React.Component{ 构造函数(){ 超级(); 此.

我正试着用传单测试一些东西。我在地图上显示了两台不同的机器,当我单击一个特定的列表按钮(以机器id区分)时,它会将地图的中心移动到该机器的位置坐标。弹出窗口已经添加,但它们仅在我单击地图上的标记时显示。我希望每当我单击列表按钮时,弹出窗口都会自动显示(目前我必须单击地图上的标记才能弹出),它应该像通常的正常行为一样关闭(默认情况下)。你知道我该怎么做吗

PS:我已经尝试使用REF,即使这样,它也部分起作用。

导出默认类App扩展React.Component{
构造函数(){
超级();
此.state={
地点:[
{
id:1,
机器:1,
拉脱维亚:51.503,
液化天然气:-0.091
},
],         
};
}
Icon=L.Icon({
iconUrl:图标,
shadowUrl:shadow,
iconSize:[38,50],
阴影大小:[50,64],
iconAnchor:[22,34],//图标的点,该点将对应于标记的位置
暗影主播:[4,62],
popupAnchor:[-3,-76]//相对于iconAnchor打开弹出窗口的点
});
openPopUp(标记,id){
if(标记和标记元素){
marker.ployelement.openPopup(id);
}
}
单击操作(id、lat、lng){
setState({marker:id,zoom:16,center:[lat,lng]});
}
render(){
console.log(this.state);
返回(
{this.state.location.map({lat,lng,id})=>{
返回(
{id}
);
})}
{
{this.state.location.map({id,machine,lat,lng})=>{
返回(
{
点击操作(id、lat、lng);
}}
>
Id{Id}
机器{machine} ); })} } ); } }

定义引用的方式行不通。因为您试图在
map
语句中添加ref,所以需要一个数组来跟踪这些ref。在构造函数中:

this.markerRefs=[]
然后在每个标记中,将ref添加到该数组:

<Marker
  position={[lat, lng]}
  icon={this.Icon}
  ref={ref => this.markerRefs[id] = ref} >
  { ... }
</Marker>
<Marker
  position={[lat, lng]}
  icon={this.Icon}
  ref={ref => this.markerRefs[id] = ref} >
  { ... }
</Marker>