2017-06-26 16 views
0

私はマップにポリラインを追加したいが、ボタンをクリックしてレンダリングすることはできない。私が現在持っているコードは以下の通りです:ボタンクリック時にポリラインを追加

<button onClick={ 
        function(){ 
         console.log(asset.past); 
         var pathLine = new L.Polyline(asset.past, { 
         color: 'red', 
         weight: 3, 
         opacity: 0.5, 
         smoothFactor: 1 
         } 
        ); 
        leafletMap.addLayer(pathLine);} 
        } 
        className="btn btn-info eachBtn">Go</button> 

ありがとう、

答えて

1

反応リーフレットのコンテキスト外でマップの状態を管理しようとしているようです。 react-leafletパッケージを使用しているのか、リーフレットを持っている自分の反応するWebサイトをロールしてみても分かりません。

実際にreact-leafletを使用している場合は、コンポーネントの状態でレンダリングするポリラインのリスト、または親コンポーネントによって更新されて送信されるプロパティのリストを維持する必要があります。レンダリング機能では、これらのポリラインを繰り返して、それぞれを反応チラシポリラインとしてレンダリングします。

このような何か:

render() { 
    return (
    <Map 
     center={[51.505, -0.09]} 
     zoom={13} 
     > 
     <TileLayer 
     attribution='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' 
     url='http://{s}.tile.osm.org/{z}/{x}/{y}.png' 
     /> 
     {this.state.polylines.map((positions, idx) => 
     <Polyline key={`polyline-${idx}`} positions={positions} /> 
    )} 
    </Map> 
); 
} 

また、ポイントはマップ上でクリックされた後にマーカーを追加して同様の反応 - リーフレットアプリケーションの例over hereを参照してください。

+0

私は間違いなくあなたの助けなしにできなかったことが今働いています!あなたは素晴らしいですし、私はあなたが素晴らしい日、週、月、年と人生を持っていることを願っています! –

関連する問題