Node.js 传单标记并不总是适用

Node.js 传单标记并不总是适用,node.js,reactjs,leaflet,jsx,react-leaflet,Node.js,Reactjs,Leaflet,Jsx,React Leaflet,所以我使用传单反应,我需要添加一些圆圈标记 现在,这段代码有时会起作用。在地图上单击时,应添加圆标记,但有时不添加。它看起来是随机的,只是不会添加一个可见的标记。有时,如果更改缩放级别,标记将变为可见,但并不总是如此。所有代码每次都会运行,因此不是没有调用addMarker(),而是始终会删除最后一个标记(通过清除标记层) 谢谢,Ed.您似乎没有使用该软件包。我建议你试试看。以下是一些示例代码,说明如何在单击事件时向地图添加标记: const React = window.React; cons

所以我使用传单反应,我需要添加一些圆圈标记

现在,这段代码有时会起作用。在地图上单击时,应添加圆标记,但有时不添加。它看起来是随机的,只是不会添加一个可见的标记。有时,如果更改缩放级别,标记将变为可见,但并不总是如此。所有代码每次都会运行,因此不是没有调用addMarker(),而是始终会删除最后一个标记(通过清除标记层)


谢谢,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='&copy; <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='&copy; <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,展示了实现: