首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在React宣传单中放置加载事件处理程序?

如何在React宣传单中放置加载事件处理程序?
EN

Stack Overflow用户
提问于 2021-06-14 16:34:49
回答 2查看 442关注 0票数 0

我需要关于我的地图应用程序的react-leaflet的帮助。我正在尝试添加一个加载函数,一旦客户端登录到地图上,该函数将在加载时执行。但在react-leaflet上,没有onLoad

现在我只有这样的想法:

代码语言:javascript
复制
function CenterCoords() {
    const map = useMapEvents({
        // TODO resolve onload
        layeradd() {
            map.locate()
            console.log('loading')
        },
        locationfound(e: any) {
            map.flyTo(e.latlng, map.getZoom())
        },
    })
    return null
}

我只使用了layeradd,但我不知道这是什么意思,react-leaflet文档没有提供有关其leaflet处理程序功能的任何提示。如果我依赖于leaflet文档,loadloading似乎不起作用。

EN

回答 2

Stack Overflow用户

发布于 2021-06-15 04:52:47

MapContainer组件接受一个whenReady属性,该属性是一个在地图准备就绪时触发的函数。它还需要一个whenCreated属性,该属性是底层leaflet L.map实例的函数。但是你可以用它做任何你想做的事情:

代码语言:javascript
复制
<MapContainer
  center={center}
  zoom={zoom}
  scrollWheelZoom={false}
  whenReady={() => {
    console.log("This function will fire once the map is created")
  }}
  whenCreated={(map) => {
    console.log("The underlying leaflet map instance:", map)
  }}>
    ...
</MapContainer>

loadloading事件更特定于层,如tileLayers或imageLayers。

票数 1
EN

Stack Overflow用户

发布于 2021-07-29 20:15:41

你可以在第一次渲染后使用useEffect来运行一些东西。在useEffect中使用空数组作为第二个参数,只运行一次。

代码语言:javascript
复制
React.useEffect(() => {
  myFunction();
}, []);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67967145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档