【问题标题】:Show popup on hover a layer in react-leaflet在 react-leaflet 中悬停图层时显示弹出窗口
【发布时间】:2020-12-22 15:11:13
【问题描述】:

我正在尝试在反应传单中悬停图层时显示弹出窗口。我使用 GeoJson 渲染地图上的所有图层,并使用 onEachFeature() 在悬停图层时显示弹出窗口。但是,当我将鼠标移入图层时,没有显示弹出窗口。它只在点击时显示。这是我的代码和地图(图层以蓝色着色)。

import { MapContainer, TileLayer, Marker, Popup, GeoJSON } from 'react-leaflet';
import './index.css'
import React, { useEffect, useState } from 'react';
import "leaflet/dist/leaflet.css";
import Header from '../common/header'
import { PixiOverlay } from 'react-leaflet-pixi-overlay';
import * as polygonData from '../../data/tinh.json';
import axios from 'axios'
import * as Request from '../../services';

export default function Home() {
  // const [display, setDisplay]=useState(false);
  // const [options, setOptions]=useState([]);
  // const [search, setSearch]= useState("");

  //function to show popup when hover
  const onEachContry = (feature, layer) =>{
    const contryName = feature.properties.NAME_1;   
    layer.on('mouseover', function (e) {
      layer.bindPopup(contryName)
    });
  }

  return (
    <>
      <Header />
      <MapContainer center={[10.7743, 106.6669]} zoom={5}>
        <TileLayer
          attribution='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
          url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
        />
        <GeoJSON
          data={polygonData.features}
          onEachFeature={onEachContry}
       />
      </MapContainer>
</>

【问题讨论】:

    标签: javascript css reactjs leaflet react-leaflet


    【解决方案1】:

    您只需调用openPopup() 方法,以便在您悬停时打开弹出窗口。

    //function to show popup when hover
    const onEachContry = (feature, layer) =>{
      const contryName = feature.properties.NAME_1;   
      layer.on('mouseover', function (e) {
        layer.bindPopup(contryName).openPopup(); // here add openPopup()
      });
    }
    

    【讨论】:

    • 有效!非常感谢您对我的项目的帮助!
    • 不客气。如果您有特权,请也给答案投票。
    • 我也有图层颜色的问题。如何禁用图层边框颜色。我尝试将颜色和填充颜色设置为“无”。但是当我这样做时,函数 onEachContry 不起作用。
    • Here 你可以找到相关文档。使用 layer.setStyle()color 设置为 false
    • 我尝试将 fillColor 和 Color 都设置为 'false' 但图层仍然有颜色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 2011-06-11
    • 2019-03-08
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多