Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 单击按钮时添加多段线_Reactjs_Leaflet_React Leaflet - Fatal编程技术网

Reactjs 单击按钮时添加多段线

Reactjs 单击按钮时添加多段线,reactjs,leaflet,react-leaflet,Reactjs,Leaflet,React Leaflet,我想在地图中添加一条多边形线,但似乎无法在单击按钮时使其渲染。以下是我目前拥有的代码: <button onClick={ function(){ console.log(asset.past); var pathLine = new L.Polyline(asset.past, { color: 'red'

我想在地图中添加一条多边形线,但似乎无法在单击按钮时使其渲染。以下是我目前拥有的代码:

<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>
Go

谢谢,Ed.

您似乎试图在react传单的上下文之外管理映射状态。我甚至不确定你是在使用这个软件包,还是在尝试推出自己的react网站,而这个网站碰巧有传单

如果确实在使用,则应维护要在组件状态下渲染的多段线列表,或由父组件更新和发送的属性。然后,在渲染函数中,您将迭代这些多段线,并将它们中的每一条渲染为多段线

大概是这样的:

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>
  );
}
render(){
返回(
{this.state.polylines.map((positions,idx)=>
)}
);
}

另外,请参见一个类似的react传单应用程序的示例,该应用程序在单击地图上的点后添加标记。

现在可以使用了,如果没有您的帮助,我肯定无法使用它!你是了不起的,我希望你有一个了不起的日子,星期,月,年和生活!!!