【发布时间】:2018-11-20 16:54:44
【问题描述】:
我正在创建一个应用程序,用户只需单击地图本身即可将标记添加到地图上的特定位置。为此,我使用 react-leaflet 来生成地图及其功能。这完美地工作,但我希望与标记关联的弹出窗口在创建时打开,我似乎无法实现。
我尝试关注this answer 以获取此功能,并将扩展标记导入我的地图。但是很可惜,出现如下错误:
Super expression must either be null or a function
at _inherits (Marker.js:21)
at eval (Marker.js:30)
at eval (Marker.js?6e37:11)
at Module../src/utils/components/Marker.js (main.js:11547)
这让我很困扰,主要是因为在扩展标记类时,我似乎无法找到有关此错误的具体答案。这是我的扩展标记实现(再简单不过了):
import { Marker } from 'react-leaflet';
class ExtendedMarker extends Marker {
componentDidMount() {
// Call the Marker class componentDidMount (to make sure everything behaves as normal)
super.componentDidMount();
// Access the marker element and open the popup.
this.leafletElement.openPopup();
}
}
export default ExtendedMarker;
这是我导入它的地方:
import ExtendedMarker from '../../../utils/components/Marker';
...
createMarker = (key, lat, lng) => {
const _lat = round(lat, this.DECIMAL_PLACES);
const _lng = round(lng, this.DECIMAL_PLACES);
return (
<ExtendedMarker key={key} id={key} position={[_lat, _lng]}>
<Popup className={`${styles.popup}`}>
<Form>
...
</Form>
</Popup>
</ExtendedMarker>
)
}
这是我正在使用的版本:
"react-leaflet": "^2.1.2",
"react": "^16.6.1"
有什么建议吗?
谢谢, 吉尔
【问题讨论】:
标签: javascript reactjs react-leaflet