我试图在GeoJSON组件中使用pointToLayer参数。我在组件外部定义了函数pointToLayer(不同的文件),我得到了这个错误。
Map.js:
import {pointToLayer} from '../helpers/helper-country-point';
<GeoJSON>
key={_.uniqueId()}
data={this.props.activeCountry.geojson}
pointToLayer={pointToLayer(this)}
></GeoJSON>
文件../helpers/helper-country-point是:
import L from 'leaflet';
export function pointToLayer(feature, latlng) {
return L.circleMarker(latlng, {
color: 'white',
fillColor: 'white',
fillOpacity: .8,
radius: 3,
stroke: false
}).bindPopup("MESSAGE") // Change marker to circle
}
当我在Map.js中定义pointToLayer并使用:
<GeoJSON
key={_.uniqueId()}
data= {this.props.countrySelected.geojson}
pointToLayer={this.pointToLayer.bind(this)}
></GeoJSON>
有效。知道为什么我一直收到这个错误吗?
答案 0 :(得分:1)
在第一个中,您正在调用该函数并使用this
作为参数。
在第二个中,您没有调用该函数。你只是将函数作为道具传递。您可以尝试删除第一个示例中的(this)
部分,这样您只需在不调用函数的情况下传递该函数。
然后,由于错误pointToLayer
不是函数,并且在map.js
中声明函数时它被解析,我怀疑你可能写错了{{1}的路径文件。