【问题标题】:Flutter: StreamBuilder builder is returning black screenFlutter:StreamBuilder builder正在返回黑屏
【发布时间】:2020-11-24 11:26:29
【问题描述】:

我有一个 StreamBuilder 监听用户登录/退出状态。

当我成功登录时,LandingScreen StreamBuilder 返回一个黑屏。但是如果我热启动它会加载正确的脚手架..只要我登录它就会打印 UID。但是当返回(测试)脚手架时,它总是黑屏。

我不明白为什么从登录到这里转换后它是黑色的,但是当我热重启它然后加载它应该如何。

编辑***我在 iPhone 12 Max Emulator 上运行它。

    class LandingScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {

    final auth = Provider.of<AuthBase>(context, listen: false);

    return StreamBuilder<CurrentUser>(
      stream: auth.onAuthStateChanged,
      builder: (context, dataSnapShot) {
        print(dataSnapShot.connectionState);
        if (dataSnapShot.connectionState == ConnectionState.active) {
          CurrentUser user = dataSnapShot.data;
          if (user == null) return LoginScreen();
          print(user.uid);
          return SafeArea(
            child: Scaffold(
              body: Column(
                children: [
                  Center(
                    child: FlatButton(
                      onPressed: () {
                        auth.signOut();
                      },
                      child: Text('SIGN OUT HERE'),
                    ),
                  ),
                ],
              ),
            ),
          );
          // return DashboardScreen();
        } else {
          return Scaffold(
            appBar: AppBar(
              title: Text('data'),
            ),
            body: Center(
              child: CircularProgressIndicator(),
            ),
          );
        }
      },
    );
  }
}

【问题讨论】:

  • 也许在 StreamBuilder 构建之前登录已经完成?

标签: flutter dart


【解决方案1】:

也许您应该将此小部件转换为 StateFull 小部件!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-14
    • 2021-05-18
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 2021-07-31
    • 2019-05-12
    相关资源
    最近更新 更多