将变量传递到回调函数中,但其状态为“未定义”

chan

我正在尝试将变量传递到回调函数中,该函数是Azure Maps的事件侦听器的一部分,但是一旦我在另一个函数中进行控制台登录,该变量就会显示为“未定义”。不知道我在做什么错。我是否以错误的方式将变量传递给了回调函数?

loadData = () => {
let dataSource = new window.atlas.source.DataSource('map', {
        cluster: true,
        clusterRadius: clusterRadiusLevel,
        clusterMaxZoom: maxClusterZoomLevel
      });
  maps.event.add('click', layer, (e,dataSource) => this.clickedCluster(e,dataSource)
}

clickedCluster = (e,dataSource) => {
console.log(dataSource)
}

肯定还有更多的loadData函数,但提供了我正在尝试执行的操作的足够信息。clickedCluster中的console.log保持未定义状态。我知道它不是未定义的,因为我在console中记录了loadData函数中的变量,并且正在获取包含所有数据的对象。

准瓦尔

首先,您缺少在线的结束语maps.event...

其次,不要dataSource在同一行中将第二个参数包含在您的匿名箭头函数中:

let loadData = () => {
    let dataSource = new window.atlas.source.DataSource('map', {
        cluster: true,
        clusterRadius: clusterRadiusLevel,
        clusterMaxZoom: maxClusterZoomLevel
    });
    maps.event.add('click', layer, e => this.clickedCluster(e, dataSource));
};

let clickedCluster = (e, dataSource) => {
    console.log(dataSource)
};

突出说明为什么这是正确的,请看这个简单的示例

let callback = a => console.log('callback', a);

let x = 'hello';

let caller1 = x => callback(x);
let caller2 = () => callback(x);

caller1(); // undefined
caller2(); // 'hello'

这称为“阴影”顺便说一句(维基)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

局部变量在javascript的回调函数中变为未定义

在回调函数中未定义MongooseJS对象

$.getJSON 回调函数未定义

Node js将变量传递到请求回调函数中

js将变量传递给返回未定义的函数

将变量传递给PHP函数(即使未定义)

'this'在指令的回调中未定义

将父范围中的变量传递给回调函数

为什么在将函数传递到元数据时未定义“ this”以及如何对其进行修复?

在异步函数内部,从回调函数返回值将返回Promise(未定义)

将变量绑定到回调函数

匿名函数在回调中给出“未定义不是函数”

为什么我的回调不是函数或未定义?

对象回调函数是未定义的Javascript

匿名回调函数内部的全局未定义

未定义API链接的回调函数

回调函数本身未定义

迭代全局对象的键尝试在异步回调中访问未定义的变量

在跨域ajax帖子的回调函数中未定义

在异步函数中的回调参数上获取未定义的错误

React-native /// 回调不是函数。(在 'callback()' 中,'callback' 未定义)

d3.js 在回调函数点击事件中未定义的数据值

通过props向子组件传递回调函数在子vue中未定义

承诺将未定义的结果返回给回调

将变量从控制器传递到视图页面显示未定义的变量

LARAVEL 7,未定义变量,无法将变量从控制器传递到视图

将数据从控制器传递到 Laravel 中查看 - 显示错误消息未定义变量

将 onChange 事件从映射的子级传递到父级的状态返回“未定义”错误

获取未定义的变量错误为PHP中的函数中定义的变量