如何使用流onDone

时间:2019-12-22 02:37:45

标签: flutter dart

流完成后,我需要导航。有没有办法使用它? onDone永远不会调用(流永远不会完成。如何解决此问题?)

  _db.getIsApplied(v.user.uid).listen((data){
    if(data.isApplied == 'Y'){
      if(!mounted) return;
      setState(() {
        path = '/homePage';
      });
    }else{
      if(!mounted) return;
      setState(() {
        path = '/accountInfoPage';
      });
    }

  },
     onDone: () {
   Navigator.of(context).pushNamedAndRemoveUntil(
       path, (Route<dynamic> route) => false);
 }, onError: (error) {
   print("Some Error");
 });

1 个答案:

答案 0 :(得分:1)

.git关闭时,将调用onDone方法:

  

如果此流关闭并发送完成事件,则onDone处理程序为   叫

Stream - listen method

您可以在获取数据时拨打导航电话。但是Stream的目的是在需要多次获取数据的情况下使用它,在这里看来只需要一次即可打开一个新屏幕,因此可以改用Stream