【发布时间】:2018-07-18 23:10:51
【问题描述】:
我正在尝试在反应组件中实现一个简单的传单映射。出于某种原因,地图的图块没有加载或以随机顺序加载。有其他人经历过吗?
这是应用程序的 CodeSandbox: https://codesandbox.io/s/3qmp8x4131
代码如下:
import React from "react";
import ReactDOM from "react-dom";
import * as L from "leaflet";
export default class Map extends React.Component {
map = null;
componentDidMount() {
var map = (this.map = L.map(ReactDOM.findDOMNode(this), {
minZoom: 2,
maxZoom: 20,
layers: [
L.tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution:
'© <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'
})
],
attributionControl: false
}));
map.on("click", this.onMapClick);
map.fitWorld();
}
componentWillUnmount() {
if (!this.map) return;
this.map.off("click", this.onMapClick);
this.map = null;
}
onMapClick = () => {
// Do some wonderful map things...
};
render() {
return <div className="map" />;
}
}
有什么想法吗?
【问题讨论】:
-
不知道 reactjs 但这似乎是一个 css 问题。您确定您已正确包含 .css 文件吗?
-
我添加了一个样式来设置高度和宽度,但问题仍然存在。这是一个有效的反应示例:codesandbox.io/s/d9pkyg3mq