在 Mapbox GL-JS 中停止 map.on() 侦听器

Stopping map.on() listener in Mapbox GL-JS

我很难理解如何在设置地图后停止事件侦听器。这里还有另外两个类似的问题,但经过努力我无法让它为我工作。

我设置事件侦听器的代码很简单:

 map.on("move", function() {
    console.log("foo");
    }
  })

如何才能随意停止呢?我试过 map.off('move'); 但这对我不起作用。我还查看了 the mapbox docs 上的文档,但也没有运气。

文档显示我需要两者:

  1. Type(字符串)要为其删除侦听器的事件类型。
  2. 监听器(函数)要删除的监听器函数。

但是,我不知道我应该使用什么作为 监听器。 (这就是为什么我只能尝试map.off('move');)。

在这种情况下如何正确设置 .off()?

这样使用:

const myfunc = () => console.log('foo');

map.on('move', myfunc);

map.off('move', myfunc);

您需要使用静态函数或将箭头函数分配给变量,以便能够使用完全相同的函数调用 off