【问题标题】:Flutter Image assets and Stream values only render after user interactionsFlutter Image assets 和 Stream 值仅在用户交互后呈现
【发布时间】:2021-07-23 22:12:55
【问题描述】:

第一次打开应用程序时,直到我点击屏幕或开始滚动,图像和流值才会呈现。在流构建器中返回小部件之前,请确保 snapshot.data 打印出正确的值。

  Row(
    mainAxisSize: MainAxisSize.min,
    children: [
      Image.asset(
        'assets/profile_image.png',
        height: 36.0,
        width: 36.0,
      ),
      SizedBox(width: 10.0),
      StreamBuilder<String>(
        stream: context.read<UserBloc>().balanceStream,
        builder: (context, snapshot) {
          print('ConnectionState is ${snapshot.connectionState}');
          switch (snapshot.connectionState) {
            case ConnectionState.active:
              print('Value is ${snapshot.data}');
              return NonScalingTextView(
                "\$ ${snapshot.data}",
                style: TitleTiny,
              );
              break;
            default:
              return Container();
          }
        },
      ),
    ],
  );

在首次启动后执行一些用户交互或热重新加载或热重启应用程序,小部件按预期呈现。

【问题讨论】:

    标签: flutter dart bloc


    【解决方案1】:

    我有一个 Authentication Bloc 作为 Material App 的父级。在里面,我在成功的 Auth 上创建了一个用户块。在这种情况下,我遇到了上述问题。该问题仅发生在基于 User Bloc 发出的状态呈现的小部件上。因此,我没有在状态更改时返回这些小部件,而是更改了我的侦听器以导航到状态更改时的这些小部件。现在,为了从这条导航路线调用我的用户群,我必须将用户群移动到 Material App 的顶部。这样做解决了我的问题。

    这解决了它,但我仍然不知道是什么导致以前的架构失败。如果有人能解释一下,那就太好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-25
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多