【问题标题】:MapContainer, TileLayer, Marker, Popup .. React LeafletMapContainer, TileLayer, Marker, Popup .. React Leaflet
【发布时间】:2021-01-07 15:30:20
【问题描述】:

我正在使用 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>)
} }

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

【问题讨论】:

  • 请包含错误的文本而不是图像。

标签: reactjs typescript leaflet react-leaflet


【解决方案1】:

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

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

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

结果是这样的:

控制台没有任何错误。

【讨论】:

  • 您能帮我如何将标记动态添加到 MapContainer
  • 请提出一个新问题并澄清问题。何时动态添加标记?提供任何进一步的细节,我会的。
【解决方案2】:

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

我也在使用带有 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"
  ]
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 2019-01-05
相关资源
最近更新 更多