Znacznik na mapie dodawany jest po drugim kliknieciu, a powinien po pierwszym kliknieciu zostać dodany. Czym to moze byc spowodowane?
state={
items:[{
"X": 13.6155611,
"Y": 51.0331258
},
],
}
componentDidMount() {
const map = new mapboxgl.Map({
container: this.mapContainer,
style: 'mapbox://styles/mapbox/streets-v11',
center: [13, 51],
zoom: 6
})
for (var i = 0; i < this.state.items.length; i++) {
var obj = this.state.items[i];
let myLatlng = new mapboxgl.LngLat(obj.X, obj.Y);
new mapboxgl.Marker()
.setLngLat(myLatlng)
.addTo(map);
}
}
addItem = (e) => {
const newItem = {
"Y": parseFloat(this.state.X),
"X": parseFloat(this.state.Y),
}
this.setState(prevState => ({
items: [...prevState.items, newItem]
}));
const map = new mapboxgl.Map({
container: this.mapContainer,
style: 'mapbox://styles/mapbox/streets-v11',
center: [13, 51],
zoom: 6
})
for (var i = 0; i < this.state.items.length; i++) {
var obj = this.state.items[i];
let myLatlng = new mapboxgl.LngLat(obj.X, obj.Y);
new mapboxgl.Marker()
.setLngLat(myLatlng)
.addTo(map);
}
e.preventDefault();
}
render() {
return (
<div ref={el => this.mapContainer = el} />
<form onSubmit={this.addItem}>
<input
type="number"
value={this.state.X}
onChange={e => this.setState({
X: e.target.value
})}
/>
<input
value={this.state.Y}
onChange={e => this.setState({
Y: e.target.value
})}
/>
<button>ADD</button>
</form>
)}