`leafletElement` 在 react-leaflet 中变得不确定

`leafletElement` is getting undefined in react-leaflet

当我在我的项目中尝试下面的代码沙箱时 link。我遇到了 leafletElement 变得不确定的问题。

以下是版本:-

"react-leaflet": "^3.1.0", "react-leaflet-enhanced-marker": "^1.0.21",

https://codesandbox.io/s/relaxed-kepler-9sw2n?file=/src/App.js

您的代码需要几处调整:

  1. 现在缩放和居中是不可变的,这意味着您无法通过 setState 更改它们。您需要将 mapReference 作为状态变量来实现。
  2. 在派生标记引用时不推荐使用 leafletElement
  3. openPopup 不需要任何参数。这来自传单 API 而不是 react-leaflet

您的代码应如下所示:

    this.state = {
         ...
          map: null,
          marker: null
        };

    openPopUp = (marker, id) => {
        console.log(marker);
        if (marker) marker.openPopup();
      };
    
      clickAction = (id, lat, lng) => {
        if (!this.state.map) return;
        this.state.map.setView([lat, lng], 16);
        this.markerRefs[id].openPopup();
      };
    
      render() {
        return (
          <>
            <MapContainer
              center={center}
              zoom={zoom}
              whenCreated={(map) => this.setState({ map })}
            >
           ...
        )
      }
 }

Demo