在我的稳定器中分配一个值后,与调试器一起检查,我得到的是空值吗?

时间:2019-11-06 09:54:24

标签: flutter dart

我有这个飞镖/飞镖提供商

class Cars with ChangeNotifier {
  List<Car> _items = [];
  Car _selectedCar;
  final Auth auth;

  Cars(this.auth, this._items);

  List<Car> get items {
    return [..._items];
  }

  Car get getCar {
    return _selectedCar;
  }

  void setSelectedCar(Car car) {
    _items.add(car);
    _selectedCar = car; // here I am getting null from _selectedCar
    notifyListeners();
  }
}

使用Android Studio 3.5.1与调试器进行检查,我可以检查自己的汽车变量中是否有真正的汽车:

  

car = {Car} _listeners = {ObserverList}()id = 156 shasi =   “ FDGFGFDGDFGFD”品牌=“雷诺”型号=“ Talisman E1&E2”   nomer =“ FGBFDFG”

但是当调试器转到第78行时,我看到_selectedCar的值是null enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

我注意到有时,调试器实际上在IDE突出显示的行的后面几行。因此,在您的示例中,即使第78行被突出显示,第77行也可能尚未执行。

我不知道为什么会这样-这有点古怪,随着时间的流逝,您将了解到调试器永远不会准确了解哪些行,以及哪些行永远是准确的。例如,永远不会命中if (true) {上的断点。由于这些原因,我建议避免在遇到断点时手动跨步/进入。而是单击以在您感兴趣的所有不同行上设置断点,然后继续运行。

对于您的用例,我建议在第78行和第79行放置断点。总是会碰到诸如第79行这样的右括号。

答案 1 :(得分:0)

看起来像

selected car = car

是类中的变量。

您在后台运行任何异步方法吗?

在您查看值时,也许有人正在更改该值。