Node.js 传单标记并不总是适用
所以我使用传单反应,我需要添加一些圆圈标记 现在,这段代码有时会起作用。在地图上单击时,应添加圆标记,但有时不添加。它看起来是随机的,只是不会添加一个可见的标记。有时,如果更改缩放级别,标记将变为可见,但并不总是如此。所有代码每次都会运行,因此不是没有调用addMarker(),而是始终会删除最后一个标记(通过清除标记层)Node.js 传单标记并不总是适用,node.js,reactjs,leaflet,jsx,react-leaflet,Node.js,Reactjs,Leaflet,Jsx,React Leaflet,所以我使用传单反应,我需要添加一些圆圈标记 现在,这段代码有时会起作用。在地图上单击时,应添加圆标记,但有时不添加。它看起来是随机的,只是不会添加一个可见的标记。有时,如果更改缩放级别,标记将变为可见,但并不总是如此。所有代码每次都会运行,因此不是没有调用addMarker(),而是始终会删除最后一个标记(通过清除标记层) 谢谢,Ed.您似乎没有使用该软件包。我建议你试试看。以下是一些示例代码,说明如何在单击事件时向地图添加标记: const React = window.React; cons
谢谢,Ed.您似乎没有使用该软件包。我建议你试试看。以下是一些示例代码,说明如何在单击事件时向地图添加标记:
const React = window.React;
const { Map, TileLayer, Marker, Popup } = window.ReactLeaflet;
class SimpleExample extends React.Component {
constructor() {
super();
this.state = {
markers: [[51.505, -0.09]]
};
}
addMarker = (e) => {
const {markers} = this.state
markers.push(e.latlng)
this.setState({markers})
}
render() {
return (
<Map
center={[51.505, -0.09]}
onClick={this.addMarker}
zoom={13}
>
<TileLayer
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url='http://{s}.tile.osm.org/{z}/{x}/{y}.png'
/>
{this.state.markers.map((position, idx) =>
<Marker key={`marker-${idx}`} position={position}>
<Popup>
<span>A pretty CSS3 popup. <br/> Easily customizable.</span>
</Popup>
</Marker>
)}
</Map>
);
}
}
window.ReactDOM.render(<SimpleExample />,
document.getElementById('container'));
const React=window.React;
const{Map,tillelayer,Marker,Popup}=window.react传单;
类SimpleExample扩展了React.Component{
构造函数(){
超级();
此.state={
标记:[[51.505,-0.09]]
};
}
addMarker=(e)=>{
const{markers}=this.state
标记器。推动(如板条)
this.setState({markers})
}
render(){
返回(
{this.state.markers.map((位置,idx)=>
一个漂亮的CSS3弹出窗口。
可轻松定制。
)}
);
}
}
window.ReactDOM.render(,
document.getElementById('container');
这里有一个JSFIDLE显示了实现:您似乎没有使用这个包。我建议你试试看。以下是一些示例代码,说明如何在单击事件时向地图添加标记:
const React = window.React;
const { Map, TileLayer, Marker, Popup } = window.ReactLeaflet;
class SimpleExample extends React.Component {
constructor() {
super();
this.state = {
markers: [[51.505, -0.09]]
};
}
addMarker = (e) => {
const {markers} = this.state
markers.push(e.latlng)
this.setState({markers})
}
render() {
return (
<Map
center={[51.505, -0.09]}
onClick={this.addMarker}
zoom={13}
>
<TileLayer
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url='http://{s}.tile.osm.org/{z}/{x}/{y}.png'
/>
{this.state.markers.map((position, idx) =>
<Marker key={`marker-${idx}`} position={position}>
<Popup>
<span>A pretty CSS3 popup. <br/> Easily customizable.</span>
</Popup>
</Marker>
)}
</Map>
);
}
}
window.ReactDOM.render(<SimpleExample />,
document.getElementById('container'));
const React=window.React;
const{Map,tillelayer,Marker,Popup}=window.react传单;
类SimpleExample扩展了React.Component{
构造函数(){
超级();
此.state={
标记:[[51.505,-0.09]]
};
}
addMarker=(e)=>{
const{markers}=this.state
标记器。推动(如板条)
this.setState({markers})
}
render(){
返回(
{this.state.markers.map((位置,idx)=>
一个漂亮的CSS3弹出窗口。
可轻松定制。
)}
);
}
}
window.ReactDOM.render(,
document.getElementById('container');
下面是一个JSFIDLE,展示了实现: