Flutter-错误:未为该类定义吸气剂X

时间:2019-07-23 07:05:19

标签: flutter dart

我有一个类TripController,其中包含一个私有字段_updatedAccount。我创建了一个吸气剂以从外部获取。

class TripController {
  final String _accountId;
  final BuildContext _context;
  Account _updatedAccount;  
  Account updatedAccount() => _updatedAccount;


  TripController(this._accountId, this._context);
...
}

在另一个我可以完全访问TripController类的类中,我有以下代码:

onTap: () {
 TripController _tripController =
 new TripController(_account.id, context);
 _tripController.add(context);
 _account.trips  = _tripController.updatedAccount.trips;
 _account.notifyListeners();
},

在这里,updatedAccount中的_tripController.updatedAccount.trips用红色下划线标出:The getter 'updatedAccount' isn't defined for the class 'TripController'

我误报了吸气剂吗?

5 个答案:

答案 0 :(得分:0)

您已将updatAccount()声明为方法,而不是获取方法。使用_tripController.updatedAccount().trips;或将方法更改为吸气剂Account get updatedAccount => _updatedAccount;

答案 1 :(得分:0)

您正在使用Dart语言中的经典方法语法声明,更喜欢对getter使用这种语法:

Account get updatedAccount => _updatedAccount;

以您的方式进行称呼。 否则,您应该像经典方法一样调用它:

_tripController.updatedAccount().trips

请点击此链接以获取更多信息:

https://dart.dev/guides/language/language-tour#getters-and-setters

答案 2 :(得分:0)

好的,我终于修复了它。我不知道为什么,但是我不得不删除与TripController相关的代码,然后再次重写它。我不知道为什么,也许是编辑器问题,我正在使用VScode。

答案 3 :(得分:0)

用显式类型声明或向下转换替换成员的定义

e.g - querySelector() 方法静态返回一个 Element,但代码假定它返回定义了 context2D 的子类型 CanvasElement。 canvas 字段被声明为 var,在没有强模式的 Dart 1.x 版本中,将其键入为 dynamic 并消除所有错误。 Dart 推断 canvas 是一个元素。

CanvasElement canvas = querySelector('canvas');
canvas.context2D.lineTo(x, y);

答案 4 :(得分:0)

只需删除“_”即可。