【问题标题】:React MapboxGL rendering issue with function component使用功能组件反应 MapboxGL 渲染问题
【发布时间】:2020-03-18 08:33:45
【问题描述】:

我对编程和反应非常陌生。目前正试图为 MapboxGL 地图添加一个图层,但我变成了错误消息,它说:

'mapContainer' 未定义 no-undef

我做错了什么?

import React, {useEffect} from 'react';
import mapboxgl from 'mapbox-gl';
mapboxgl.accessToken = 'PUBLIC TOKEN'

 const getMap = () => {
return new mapboxgl.Map({
  container: mapContainer,
  style: 'mapbox://styles/mapbox/streets-v11',
  center: [9, 47],
  zoom: 10
});



  const Map = () => {
    useEffect(() => {
      const map = getMap();

  map.on('move', () => {
    this.setState({
      lng: map.getCenter().lng.toFixed(4),
      lat: map.getCenter().lat.toFixed(4),
      zoom: map.getZoom().toFixed(0)
    });
  });

  map.on('load', () => {
    map.addLayer({
      id: 'streets',
      type: 'line',
      source: {
        type: 'geojson',
        data:
          'http://someWFSAPIdata=application/json'
      },
      layout: {
        'line-join': 'round',
        'line-cap': 'round'
      },
      paint: {
        'line-color': '#08363e',
        'line-width': 0.8
      }
    });
  });
}, []);

如下渲染

 return (
    <div>
      <div ref={el => (this.mapContainer = el)} className='mapContainer' />
      <h1>Hello there geoReact</h1>
    </div>
  );

由于我使用的是功能组件,因此不再需要渲染,但我不确定它有什么问题。

非常感谢

【问题讨论】:

  • 请使用 react-mapbox-gl
  • 你能描述得更详细些吗?请 :) @DennisVash?

标签: reactjs geojson mapbox-gl-js


【解决方案1】:

我发现这个解释对我的案例很有帮助

https://sparkgeo.com/blog/build-a-react-mapboxgl-component-with-hooks/

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 2020-02-29
    • 2019-07-27
    • 2018-01-25
    • 2021-10-27
    • 1970-01-01
    • 2018-05-03
    • 2021-10-23
    相关资源
    最近更新 更多