リアクションの状態を使用してダイナミックポリゴンを作成しようとしていますが、リーフレットポリゴンが再レンダリングされていません。リアクションリーフレットポリゴンが再レンダリングされていません
ターゲットは、ユーザーがマップ内でクリックを作成するポリゴンを作成することです。
class SimpleExample extends React.Component {
constructor() {
super();
this.state = {
positions: [[51.505, -0.09]]
};
}
addPosition = (e) => {
const {positions} = this.state
console.log('Adding positions', positions)
positions.push([e.latlng.lat, e.latlng.lng])
this.setState({positions})
}
render() {
console.log('Should render new positions', this.state.positions)
const staticPositions = [[51.505, -0.09], [51.4958128370432, -0.10728836059570314], [51.49602657961649, -0.09956359863281251]]
return (
<Map
center={[51.505, -0.09]}
onClick={this.addPosition}
zoom={13}
>
<TileLayer
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url='http://{s}.tile.osm.org/{z}/{x}/{y}.png'
/>
<Polygon positions={this.state.positions} color="blue" />
<Polygon positions={staticPositions} color="red" />
<Polyline positions={this.state.positions} />
</Map>
);
}
}
このフィドルをチェックアウトしてください: https://jsfiddle.net/cesargdm/j2g4ktsg/1/
あなたが達成しようとしていることの詳細を教えてください。 –
もちろん、ユーザーが作成したポリゴンを地図上でクリックして作成したいだけです。 これはユーザーが地図をクリックすると座標が状態に保存されます。これでポリゴンが座標を取得します。 – cesargdm
エドガーエンリケス:) – cesargdm