我在渲染函数中返回geojson数据毫不费力:
<Map ref={(ref) => { this.map = ref; }} center={position} zoom={13}>
<TileLayer
attribution="&copy <a href="http://osm.org/copyright">OpenStreetMap</a> contributors"
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
<GeoJSON data={this.state.geojson_data} /> }
</Map>
所以我尝试的接下来是初始化 this.state.geojson_data 用null初始化,然后在 componentdidmount上加载数据,然后我将与geojson的行修改为此,因为expisouly,null不是有效的geojson对象。
{ this.state.geojson_data !== null && <GeoJSON data={this.state.geojson_data} /> }
数据没有任何问题,但是我的Geojson根本不显示,任何人都知道为什么?
我可以看到两种规避的方法:
- 使用地图参考将层添加为香草传单方式,但我想使用更反应的方法。
- 用父组件加载数据并将其作为道具,但是我喜欢在数据加载时,地图是初始化和加载的想法,而不是在数据加载后。
edit1:我对Geojson组件进行了一些非Geojson数据的效果进行了进一步研究,并且它造成了错误,当数据良好时,它仍然没有绘制图层。
这是一个参考问题,对不起,我无法进一步解释,我与之交谈的GIS人给了我另一个Geojson的版本,并带有另一种参考,它按预期工作。
错误出现在我身上,我首先尝试了一个硬编码的geojson,我确定我的后端尝试加载它时使用了相同的数据,而另一个是错误的。
。编辑:处理我们的GIS的人给了我们一个Geojson,没有使用正确的参考