architecture - flutter BLoC : Is using nested Stre

有没有更好的方法将小部件公开给来自不同 BLoC 的两个或多个流?到目前为止,我一直在使用嵌套的 StreamBuilder 来处理我需要收听的尽可能多的流,就像下面粘贴的代码一样。这是一个好习惯吗?

StreamBuilder(
    stream: firstBloc.stream1,
    builder: (_, AsyncSnapshot snapshot1) {
        return StreamBuilder(
            stream: secondBloc.stream2,
            builder: (_, AsyncSnapshot snapshot2) {
                return CustomWidget(snapshot1.data, snapshot2.data);
            }
        )
    }
)

使用像 combineLatest2 这样的 rxdart 运算符感觉很笨拙,因为在大多数情况下,我不希望使用某个 bloc 来了解另一个 bloc 中的流。

最佳答案

您无法使用小部件进行其他操作。这是小部件系统的限制之一:事情往往会变得非常嵌套

不过有一个解决方案:Hooks,一个来自 React 的新功能,通过 flutter_hooks 移植到 Flutter (我是维护者)。

最终结果变成了这样:

final snapshot1 = useStream(firstBloc.stream1);
final snapshot2 = useStream(secondBloc.stream2);

return CustomWidget(snapshot1.data, snapshot2.data);

这与两个嵌套的 StreamBuilder 完全一样,但无论是否嵌套,一切都是在同一个内完成的。

关于architecture - flutter BLoC : Is using nested StreamBuilders a bad practice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54840870/

相关文章:

dart - 如何根据背景图像更改文本颜色 - Flutter

google-maps - 自定义 Flutter Google Map 中的中心位置按钮

flutter - 在 Android Studio 中运行和热重载 flutter 的问题(坏状态

flutter - 如何在 Flutter 中向 TextFormField 添加阴影

list - Flutter - 如何查询列表中的搜索项

android - 在 Flutter 的垂直列表中添加动态高度水平 ListView

testing - 如何在 Flutter 中测试私有(private)函数/方法?

flutter - 了解 Flutter didChangeDependencies 机制

dart - StreamBuilder 抛出 Dirty State 说 Invalid Argu

dart - 事件队列和微任务队列