flutter - Streambuilder 在收到流时如何工作?
问题描述
因为我想并行处理多个流,所以我对 Streambuilder 的工作原理很感兴趣。我是否正确理解当 Streambuilder 接收到流时,它会更新构建方法?
目前,当 Streambuilder 接收到一个流时,它每次都会更新整个小部件的状态。我认为它只更新 streambuilder 中的子小部件(在本例中为文本),而不是完整的小部件。
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: <Widget>[
StreamBuilder<Map>(
stream: NumberCreator().stream,
builder: (context, snapshot) {
return Text(snapshot.data['test']);
}),
StreamBuilder<Map>(
stream: OtherCounter().stream,
builder: (context, snapshot) {
return Text(snapshot.data['test2']);
}),
],
),
);
}
我想在有状态小部件的堆栈中使用多个流构建器。将流构建器外包给他们自己的无状态小部件是否更好,或者推荐的架构是什么?
解决方案
您可以将 StreamBuilders 视为管道、电线或连接器。在一个“端有数据”和另一个“端是事件触发”。这里的“事件触发器”是指用户请求数据。Stream builder是异步系统,只要它接收到用户输入并且可以检索数据,它就会自动运行。所以对我来说,不管你怎么说,只要你达到你想要的就更好了?最好或推荐的方法是在你完成代码之后实施,这样你就不会头疼了
推荐阅读
- groovy - 是否可以使用 groovy 脚本将字符串从 US-ASCII 转换为 UTF-8 编码?
- spring - 在表单提交时替代隐藏元素
- c# - MVC5 .NET 应用程序并获取当前用户名
- angularjs - 如何访问视图中降级组件的实例?
- sql-server - 在 VB.NET 标签上显示来自 SQL Server 的值
- python - 能够读取一个文件但无法将文件夹中的多个 json 文件读取到 padas 数据帧中
- r - 如何让倒计时在 R 中运行
- java - 如何从 .txt 或 .xslx 每 X 秒打开一个网页并自动下载文件提示
- python - 使用while 1而不输入任何命令时如何在pyserial python中终止ser.read?
- json - 使用 Play json 解析具有不同模式的 json