Javascript React传单:如何调用resetStyle等GeoJson方法?
我将遵循PropaleJS的示例,并尝试使用GeoJson对象的resetStyle方法和Map对象的fitBounds方法添加交互。在传单中,这些方法通过引用相应的对象来调用:Javascript React传单:如何调用resetStyle等GeoJson方法?,javascript,reactjs,leaflet,react-leaflet,Javascript,Reactjs,Leaflet,React Leaflet,我将遵循PropaleJS的示例,并尝试使用GeoJson对象的resetStyle方法和Map对象的fitBounds方法添加交互。在传单中,这些方法通过引用相应的对象来调用: var map = L.map('map'); function zoomToFeature(e) { map.fitBounds(e.target.getBounds()); } var geojson; // ... our listeners geojson = L.geoJson(...); fu
var map = L.map('map');
function zoomToFeature(e) {
map.fitBounds(e.target.getBounds());
}
var geojson;
// ... our listeners
geojson = L.geoJson(...);
function resetHighlight(e) {
geojson.resetStyle(e.target);
}
如何在react传单中访问这些方法?从用户交互返回的对象中不存在这些方法。我还尝试从react传单中导出它们,但这也不起作用
这是我的名片
我知道一个月前有人问过同样的问题,但解决方案是访问
this.refs.geojson.palicelement.resetStyle(e.target)
,不再工作,因为refs
不是e.target
的属性,此
仅指e.target
一种方法是将“ref”属性附加到GeoJSON组件,并将组件传递给事件处理程序
JSFiddle:
//在鼠标输出时重置默认样式
功能重置突出显示(组件,e){
//只是为了表明ref在活动期间存在,我不确定如何在您的库中具体使用它
log(component.refs.geojson);
//geojsonresetStyle(即目标);
//如何封装GeoJson组件/对象?
}
//`component`现在是第一个参数,因为它是通过Function.bind方法传递的,所以我们需要在这里将它传递给相关的处理程序
功能特性(组件、特性、图层){
分层({
鼠标悬停:Highlight功能,
mouseout:resetHighlight.bind(null,组件),
单击:缩放自然
});
}
您需要向函数发送适当的词法范围,然后才能访问
此。参考文件
例如:
this.highlightFeature.bind(this)
然后就是了
onEachFeature(feature, layer) {
layer.on({
mouseover: this.highlightFeature.bind(this),
mouseout: this.resetHighlight.bind(this),
click: this.clickToFeature.bind(this)
});
}
onEachFeature(feature, layer) {
layer.on({
mouseover: this.highlightFeature.bind(this),
mouseout: this.resetHighlight.bind(this),
click: this.clickToFeature.bind(this)
});