我有以下代码:阵营,传单,电源位置从国家
import React, { Component } from 'react';
import { Map, Marker, Popup, TileLayer } from 'react-leaflet';
class App extends Component {
constructor(props) {
super(props);
this.state = {
coordinates: []
}
}
}
componentDidMount() {
// code to populate coordinates state
}
render() {
const position = [50, 100]
return (
<div className="container">
<Map center={position} zoom={13}>
<TileLayer url='http://{s}.tile.osm.org/{z}/{x}/{y}.png' attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
/>
<Marker position={position}>
<Popup>
<span>A pretty CSS3 popup.<br/>Easily customizable.</span>
</Popup>
</Marker>
</Map>
</div>
)
}
该地图正确显示,除非我尝试使用坐标从我的状态。国家的输出是这样的:
["86.765", "29.724999999999998", "0", "86.765", "29.724999999999998", "0"]
我怎么会这个数据传递给position
变量,并利用它? 我试过了现在: 我定义的其他两个国家 - lat
和lng
与服务器对应的值,并在这些国家中提取所需的值这样做map
:
let latVal = this.state.lat.map(latItem => {
return latItem;
}
let lngVal = this.state.lng.map(lngItem => {
return lngItem;
}
但是当我将它传递给position
像let position = [latVal, lngVal]
可变我得到一个错误,说我的latVal
是null
,但我可以在console.log
功能render()
两个值(latVal
和lngVal
),在这种情况下,输出如下所示:90.7250000000000128.105090.1649999999999929.555000000000003088.233
,我认为会导致错误,我不当然应该如何我转换这些数据以使其工作。 在此先感谢!
UPD 我设法改变latVal
和lngVal
输出和我的新代码如下所示:
let arr = []
let latVal = this.state.lat.map(k => {
arr.push(k + ' ');
})
let lngVal = this.state.lon.map(i => {
arr.push(i + ' ');
})
const position = [50, 100];
let newArr = position.concat(arr);
但仍没有运气。
数组你是询问如何将值提取出的输出或者是你问如何使用Map组件的“position”属性? – Teedub
@Teedub我认为它更多的是从给定的数组中获取值,并将它们用在'position'属性 –
的位置应该是[lat,lng]而不是数组数组。你是否试图从数组中的值列表创建多个标记? –