javascript - React-Leaflet,从状态提供位置

标签 javascript reactjs react-leaflet

我有以下代码:

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='&copy; <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>
    )
}

除非我尝试使用我所在州的坐标,否则该 map 将正确显示。状态的输出如下所示:

["86.765", "29.724999999999998", "0", "86.765", "29.724999999999998", "0"]

如何将此数据传递给 position 变量并使用它? 我现在尝试过的: 我定义了另外两个状态 - latlng 以及来自服务器的相应值,并对这些状态进行了 map 以提取所需的值,如下所示:

let latVal = this.state.lat.map(latItem => {
    return latItem;
}
let lngVal = this.state.lng.map(lngItem => {
    return lngItem;
}

但是当我将它传递给 position (如 letposition = [latVal, lngVal] 变量)时,我收到一条错误消息,指出我的 latValnull,但我可以在 render() 中 console.log 两个值(latVallngVal) 函数,在这种情况下,输出如下所示: 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);

但还是没有运气。

最佳答案

这是一个正确的数组映射,应该可以满足您的需要 - 来自两个状态的对的数组

this.state.lat.map((value,index)=>[value,this.state.lon[index]])

关于javascript - React-Leaflet,从状态提供位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45173950/

相关文章:

javascript - 使用 Flask 解决跨域资源共享

javascript - Karma + Jasmine - 找不到变量要求

javascript - AJAX + promise : Chaining AJAX calls not working

javascript - React.js 中的样式表

javascript - "You may need an appropriate loader to handle this file type"

javascript - jQuery 最接近的方法不起作用

javascript - 双重渲染useEffect Reactjs

reactjs - 更改 Office UI Fabric React 组件的颜色

reactjs - 在 react-leaflet 上的 react-leaflet-draw 绘制层的弹出窗口中渲染 react 组件

javascript - React 传单绘制 - 缺少标记图标和拖动处理程序