У меня нет проблем с рендерингом данных геоджона, возвращая это в моей функции рендеринга:
<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 с нулем, а затемзагружая данные на componentDidMount , затем я изменил строку с GeoJSON на эту, потому что, как видно, null не является допустимым объектом geojson.
{ this.state.geojson_data !== null && <GeoJSON data={this.state.geojson_data} /> }
данные извлекаются без проблем,но мой геойсон вообще не показывает, кто-нибудь знает почему?
Я вижу два способа обойти это:
- , используя ссылку на карту, чтобы добавить слой ванильным листком, ноЯ хотел бы использовать более оперативный подход.
- загрузка данных с родительским компонентом и предоставление их в качестве опоры, но мне нравится идея, что карта инициализируется и загружается при загрузке данных, а непосле загрузки данных.
EDIT1: я провел небольшое исследование и попытался передать компоненту GeoJSON некоторые данные, отличные от geojson, и сделал ошибку, но все равноя не рисую слой, когда данные хороши.