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