Reactjs 为什么我得到';地图';不是从';反应传单';?

Reactjs 为什么我得到';地图';不是从';反应传单';?,reactjs,react-leaflet,Reactjs,React Leaflet,为什么我会得到: ./src/components/mapComponent/MapView.jsx Attempted import error: 'Map' is not exported from 'react-leaflet'. 我正在组件中导入此项: import React, { Component } from "react"; import { Map, TileLayer } from "react-leaflet"; import &

为什么我会得到:

./src/components/mapComponent/MapView.jsx
Attempted import error: 'Map' is not exported from 'react-leaflet'.
我正在组件中导入此项:

import React, { Component } from "react";
import { Map, TileLayer } from "react-leaflet";
import "leaflet/dist/leaflet.css";
这让我很困惑,因为代码中的所有内容看起来都是正确的……

请尝试使用

MapContainer组件负责创建传单地图 实例并使用React将其提供给其子组件 上下文

创建MapContainer元素时,其道具用作 创建映射实例

现在必须导入MapContainer

import { MapContainer, TileLayer, Marker } from 'react-leaflet';

<MapContainer
  className="markercluster-map"
  center={[51.0, 19.0]}
  zoom={4}
  maxZoom={18}
>
  <TileLayer
    url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
    attribution='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
  />
</MapContainer>
从“react传单”导入{MapContainer,TileLayer,Marker};
试试这个:

import { Map as LeafletMap } from ' leaflet ';

它适用于我

映射
更改为
映射容器

import { MapContainer, TileLayer } from "react-leaflet";

您应该使用
import{MapContainer}从“react-传单”
而不是Map,在执行此操作之前,请通过安装react-传单和传单

$npm i传单反应传单

希望这能解决您的问题

也许将
Map
重命名为
MapContainer
可以工作。没有使用
Map
命名的导出-可能是API更改。这解决了此问题,但还有下一个问题。。。啊……我一直在研究这个问题,因为我在一些react传单功能上也有同样的错误。react传单的github和其他相关软件包中有几个问题突出说明了更新版本3.0是如何破坏一些东西的。我已经尝试了,但是,我得到了相同的错误:尝试导入错误:“MapControl”不是从“react传单”导出的。@Giox:确保您拥有最新版本的react传单。MapContainer已从v3开始添加;请参阅。由于上述情况通常发生在依赖项升级之后,所以可能有帮助的是取消node_modules目录并进行npm安装。帮助我解决了编译器对组件属性的投诉。我也遇到了同样的问题,删除@types/react leflt解决了这个问题。请解释您的答案