dart - flutter : Bad state: Stream has already bee


    class MyPage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return DefaultTabController(
          length: 2,
          child: new Scaffold(
            appBar: TabBar(
              tabs: [
                Tab(child: Text("MY INFORMATION",style: TextStyle(color: Colors.black54),)),
                Tab(child: Text("WEB CALENDER",style: TextStyle(color: Colors.black54),)),
              ],
            ),
            body:PersonalInformationBlocProvider(
              movieBloc: PersonalInformationBloc(),
              child: TabBarView(
                children: [
                  MyInformation(),
                  new SmallCalendarExample(),
                ],
              ),
            ),
          ),
        );
      }
    }
    
    class MyInformation extends StatelessWidget{
      // TODO: implement build
      var deviceSize;
    
      //Column1
      Widget profileColumn(PersonalInformation snapshot) => Container(
        height: deviceSize.height * 0.24,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: <Widget>[
                Container(
                  decoration: BoxDecoration(
                    borderRadius:
                    new BorderRadius.all(new Radius.circular(50.0)),
                    border: new Border.all(
                      color: Colors.black,
                      width: 4.0,
                    ),
                  ),
                  child: CircleAvatar(
                    backgroundImage: NetworkImage(
                        "http://www.binaythapa.com.np/img/me.jpg"),
                    foregroundColor: Colors.white,
                    backgroundColor: Colors.white,
                    radius: 40.0,
                  ),
                ),
                ProfileTile(
                  title: snapshot.firstName,
                  subtitle: "Developer",
                ),
                SizedBox(
                  height: 10.0,
                ),
              ],
            )
          ],
        ),
      );
      Widget bodyData(PersonalInformation snapshot) {
        return SingleChildScrollView(
            child: Column(
              children: <Widget>[
                profileColumn(snapshot)
              ],
            ),
        );
      }
    
    
      @override
      Widget build(BuildContext context) {
        final personalInformationBloc = PersonalInformationBlocProvider.of(context);
    
        deviceSize = MediaQuery.of(context).size;
        return StreamBuilder(
            stream: personalInformationBloc.results,
            builder: (context,snapshot){
              if (!snapshot.hasData)
                return Center(
                  child: CircularProgressIndicator(),
                );
              return bodyData(snapshot.data);
            }
        );
      }
    }
   

我正在使用 Bloc 模式从 Rest API 检索数据(仅从 JSON 调用整个对象并仅解析用户名)。该页面由两个选项卡 MyInformation 和 SmallCalendar 组成。当应用程序运行时,数据被正确获取并且一切都很好。当我转到标签二并返回标签一时,标签一中的整个屏幕变为红色,显示错误: Bad state: Stream 已经被监听。

最佳答案

您应该使用以下内容。

StreamController<...> _controller = StreamController<...>.broadcast();

关于dart - flutter : Bad state: Stream has already been listened to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51396769/

相关文章:

dart - Flutter:设置AppBar的高度

flutter - 如何在 Flutter 中添加图片

flutter - 如何将一列小部件紧紧包裹在卡片内?

flutter - 如何在 Flutter 中创建圆形图标按钮?

flutter - Flutter中的primaryColor和primarySwatch有什么区别

android - 在 flutter 应用程序中添加日期选择器的正确方法是什么?

flutter - BuildContext 在 Flutter 中做了什么?

flutter - Flutter 中的 BottomNavigationBar 样式

flutter - 在 dispose() 之后调用 setState()

android - Flutter 找不到 android sdk