【问题标题】:How to add condition to StreamBuilder's rebuild in Flutter?如何在 Flutter 中为 StreamBuilder 的重建添加条件?
【发布时间】:2020-03-07 20:11:00
【问题描述】:

我正在使用StreamBuilder 来动态刷新 UI。

StreamBuilder<State>( //
          stream: stateStream,
          builder: (BuildContext context, AsyncSnapshot<BlocState> snapshot) =>
              // do anything
        );

stateStream有新数据时,UI会自动刷新。

但是,有时新数据和旧数据的价值可能相同。此时无需刷新。

如何控制StreamBuilder这次不刷新?

【问题讨论】:

标签: flutter dart bloc


【解决方案1】:

您是否使用任何类型的状态管理?即集团?

如果您不希望小部件刷新...您应该在 Bloc 而不是 StreamBuilder 中添加逻辑。基本上如果数据相同,就不要向Sink发送添加任何数据。

【讨论】:

    【解决方案2】:

    我建议使用bloc_library。它的优点之一是如果数据没有更改,它不会将数据发送到 UI。我最近写了blog post,其中我已经解决了这个功能。

    【讨论】:

      【解决方案3】:

      正如comment 所示,distinct 解决了我的问题

      【讨论】:

        猜你喜欢
        • 2021-10-12
        • 2019-12-31
        • 1970-01-01
        • 2020-12-11
        • 2021-02-21
        • 2021-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多