Flutter 错误状态:流已侦听到颤振提供程序

Flutter 错误状态:流已侦听到颤振提供程序,flutter,dart,provider,Flutter,Dart,Provider,我习惯于在执行任何操作时加载json数据并刷新应用程序状态 这是我的提供者变更通知程序 class ClassesDetails with ChangeNotifier { Future<void> getLiveClassList(String token) async { final url = FitApis.demoBaseURL + "live/class"; try { final response = a

我习惯于在执行任何操作时加载json数据并刷新应用程序状态

这是我的提供者变更通知程序

    class ClassesDetails with ChangeNotifier {

    Future<void> getLiveClassList(String token) async {
    final url = FitApis.demoBaseURL + "live/class";
    try {
      final response = await http.get(url, headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Authorization': token,
      });
      //print(response.body);
      final responseData = json.decode(response.body);
      if (responseData['data'] != null) {
        notifyListeners();
        Map typesMap = jsonDecode(response.body);
        var types = new LiveClassListModel.fromJson(typesMap);
        _liveClassController.add(types);
      }
    } catch (error) {
      throw (error);
    }
  }

  final _liveClassController = StreamController<LiveClassListModel>();

  Stream<LiveClassListModel> get liveClassStream {
    return _liveClassController.stream;
  }

  void refreshLiveClasses(String token) {
    getLiveClassList(token);
  }
}

这是完美的工作。但问题是,当我从应用程序注销并再次登录时,它会给我错误错误状态:流已经被监听了。我搜索了很多,但没有找到有用的解决方案。我试过了,但没有成功。我尝试使用classProvider.closeStream()但不起作用。请帮助我如何解决此问题。

我刚刚创建了一个相同的流并发现了问题,只需更改您的
流控制器,如下所示:

final _liveClassController = StreamController<LiveClassListModel>.broadcast();
final\u liveClassController=StreamController.broadcast();
    Future<void> getLiveClassList() async {
    final classProvider = getIt<ClassesDetails>();
    
    classProvider.getLiveClassList("token)";
            classProvider.liveClassStream.listen((snapshot) { });
}
 classProvider
            .refreshLiveClasses("token");
final _liveClassController = StreamController<LiveClassListModel>.broadcast();