我有一个类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'
我误报了吸气剂吗?
答案 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)
只需删除“_”即可。