我有下面的react类,它通过浏览器获取地理位置.

我正在绘制传单 map .我想将地理位置作为setView的输入,以便 map "zoom "到客户端浏览器位置的区域.

下面是react课程:

    import React from 'react';
    import L from 'leaflet';
    import countries from './countries.js'; 

    var Worldmap = React.createClass({

        render: function() {

            let geolocation = [];

            navigator.geolocation.getCurrentPosition(function(position) {
                let lat = position.coords.latitude;
                let lon = position.coords.longitude;
                geolocation.push(lat, lon);
                locationCode()
            });

            function locationCode() {
                if(geolocation.length <= 0)
                    geolocation.push(0, 0);
            }


            let map = L.map('leafletmap').setView(geolocation, 3);

            L.geoJSON(countries, {
                style: function(feature) {
                    return {
                        fillColor: "#FFBB78",
                        fillOpacity: 0.6,
                        stroke: true,
                        color: "black",
                        weight: 2
                    };
                }
            }).bindPopup(function(layer) {
                return layer.feature.properties.name;
            }).addTo(map);

            return (
                <div id="leafletmap" style={{width: "100%", height: "800px" }}/>
            )
        }
    });

    export default Worldmap

它在一个主文件中调用,其中HTML呈现为<WorldMap />.

我在加载页面时得到错误Uncaught Error: Map container not found..环顾四周,通常是因为 map 在被提供值(本例中为(gelocation,3))之前试图显示在一个div中.但是,在从下面的渲染函数返回之前,它不应该显示它.

问题可能是什么?

在控制台中打印出geolocation可以正确获取坐标,所以这似乎不是问题所在.

推荐答案

必须将<div id="leafletmap">添加到dom before调用L.map('leafletmap').

Reactjs相关问答推荐

无法使用#13;或br将新行设置为文本区域'"&"<>

Next.js-图像组件加载问题

两条react 路由的行为不同.有没有人能解释一下,我已经找了好几天了

错误./src/TopScroll.js 31:21-31导出';(作为';随路由导入)在';Reaction-Router-Dom';中找不到

useCallback()是否应该用于作为prop传递给子组件的函数,即使该组件包装在memo()中?

Reaction Google Maps API无法获取标题

如何从Reaction-Arborist树获取排序数据

蚂蚁 Select .列表弹出窗口不会';有时不会出现

tRPC/react-query,在所有查询完成之前,组件不会收到任何 useQuery 的结果

获取 不能显示为 的后代.错误,但不太确定如何构建我的代码以避免此警告

如何管理可重用无线电输入的 React 状态?

当`useSelector`回调中的属性值更新时,将会使用更新后的值吗?

使用新数据更新时,React 不更新具有过滤功能的深层嵌套对象数组中的变量状态

在 React-Select 中显示多值的倒序

如何使用样式化函数为 TextField 的输入组件设置样式

从服务器获取数据时未定义,错误非法调用

页面加载时不显示数组中的数据

Cypress - 替换 React 项目中的变量

将 Material UI 菜单渲染为

如何将本地视频文件上传到 Google Cloud