匿名函数Dart.js中对此的引用

时间:2019-03-19 08:06:33

标签: dart

是否可以引用在匿名函数中创建对象的this

var marker = Marker(
    icon: BitmapDescriptor.defaultMarker,
    onTap: () {
       /// <--- here I need a reference to the marker
    });

this不起作用,因为它是外部对象,是否可以投射类似this@Marker

的东西

2 个答案:

答案 0 :(得分:2)

您需要拆分变量声明和初始化,因为初始化代码无法引用其初始化的变量。

如果代码在函数内,则可以使用

Marker marker;
marker = Marker(
    icon: BitmapDescriptor.defaultMarker,
    onTap: () {
       /// <--- here I need a reference to the marker
    });

答案 1 :(得分:1)

您不能在课程本身之外引用this。 您可以尝试使用marker来引用正在创建的标记,但这在这里不起作用,因为不能在其自己的初始化程序中引用变量。 因此,您必须从初始化中拆分变量声明:

Marker marker;
marker = Marker(
    icon: BitmapDescriptor.defaultMarker,
    onTap: () {
      marker.something();
    });