Flutter :使用流控制器黑屏

epfja78i  于 2023-05-08  发布在  Flutter
关注(0)|答案(1)|浏览(108)

我正在使用MVVM架构创建电子商务应用程序,其中我在ViewModel类中使用流控制器。当我改变手机屏幕的方向时,它会说

不良状态:流已被收听

我已经尝试添加。广播当我初始化流控制器

final StreamController _streamController = StreamController<ViewObject>.broadcast();

但输出仍然不是所需的,而是屏幕变成空白。

jgovgodb

jgovgodb1#

若要修复此问题,您可以在释放ViewModel类时取消流订阅。可以通过重写ViewModel类中的dispose方法并调用流订阅的cancel方法来实现此目的。下面是一个例子

class MyViewModel extends ChangeNotifier {
  final StreamController _streamController = StreamController<ViewObject>.broadcast();
  Stream<ViewObject> get myStream => _streamController.stream;

  MyViewModel() {
    // Add data to the stream controller
    _streamController.add(myData);
  }

  @override
  void dispose() {
    _streamController.close();
    super.dispose();
  }
}

相关问题