在ChangeNotifier中覆盖处理方法

时间:2020-01-03 16:57:16

标签: flutter flutter-provider

我有以下型号

class SelectorModel with ChangeNotifier {
    .... // stuff relating to the model
}

在我的模型中,我使用以下命令获取Firestore文档流:

_subscription = Firestore.instance   // _subscription is defined as an iVar above
      .collection('myCollection')
      .snapshots()
  .listen((querySnapshot)  {
    _jobs = querySnapshot.documents;
    callingMethod('');  // the method being called is inside of my model
  });

我需要一种处置_subsciption的方法,以便在Firestore数据库中发生更改时,它不会尝试在已经处置了模型的情况下调用callingMethod()

我正在寻找的方法几乎类似于ChangeNotifier的以下方法:

@override
void dispose() {
    super.dispose();
    _subscription.cancel();
}

我浏览了提供者docs,但找不到任何内容。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

如果我了解您,您可以这样做

_subscription = Firestore.instance   // _subscription is defined as an iVar above
      .collection('myCollection')
      .snapshots()
  .listen((querySnapshot)  {
    _jobs = querySnapshot.documents;
    callingMethod('');  // the method being called is inside of my model
   _subscription.cancel();
  });