微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MapContainer、TileLayer、Marker、Popup .. React Leaflet

如何解决MapContainer、TileLayer、Marker、Popup .. React Leaflet

我正在使用 React - Typescript - Leaflet 开发地图应用程序 我使用过 ReactLeaflet 包,但是当我使用它时,我在编译问题时遇到错误

import * as React from "react";
import { MapContainer,TileLayer,Marker,Popup } from 'react-leaflet';
export default class MapsComp extends React.Component  {
render(){
    return(<div>asdf</div>)
} }

如果有人能帮我渲染地图会很有帮助

解决方法

您应该在 esModuleInterop 文件中将 true 设置为 tsconfig.json

我也在使用带有 TypeScript 的 react-leaflet 包,这是我的配置:

{
  "compilerOptions": {
    "target": "es5","lib": [
      "dom","dom.iterable","esnext"
    ],"allowJs": true,"skipLibCheck": true,"esModuleInterop": true,"allowSyntheticDefaultImports": true,"strict": true,"forceConsistentCasingInFileNames": true,"noFallthroughCasesInSwitch": true,"module": "esnext","moduleResolution": "node","resolveJsonModule": true,"isolatedModules": true,"noEmit": true,"jsx": "react-jsx"
  },"include": [
    "src"
  ]
}
,

我刚刚创建了您的项目,安装了 npm 并运行了您的代码,唯一缺少的是 MapContainer高度。我没有收到您收到的错误。我不知道你为什么会得到它。

在 maps.tsx 上,MapsComp 添加 style={{ height: "100vh" }} 或任何适合您需要的高度。

<MapContainer
        center={[51.505,-0.09]}
        zoom={13}
        scrollWheelZoom={false}
        style={{ height: "100vh" }}
>
...
</MapContainer>

结果是这样的:

控制台中没有任何错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。