flutter - 如何限制颤动中流的结果计数
问题描述
我正在寻找一种可以限制此类流的结果数量的方法:
return StreamBuilder(
stream: Global.updatesRef.streamData(),
builder: (BuildContext context, AsyncSnapshot snap) {
if (snap.hasError) {
print(snap.error);
}
if (snap.hasData) {
List<Update> updates = (snap.data)
.where((item) =>
item.status == 'online' &&
item.type == 'market' &&
item.id != widget.productId)
.toList();
if (updates.length > 0) {..
这给了我查询的所有结果,但我想在流中限制这里的计数,只说5 个项目。
我正在使用提供程序来获取 Firestore 数据。因此,提供程序存储与至少目前不需要任何结果计数限制的其他屏幕共享。
因此,如果我可以根据屏幕或小部件来做到这一点,那就太好了。
解决方案
.take(5)
在流上使用。.take
将count
流的第一个数据事件作为新事件返回。
最多提供此流的第一个计数数据事件。
文档:https ://api.dartlang.org/stable/2.7.0/dart-async/Stream/take.html
这是如何工作的示例:
void main() {
Stream.fromIterable([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).take(5).forEach((val) {
print(val); // prints: 1 2 3 4 5
});
}
推荐阅读
- sql - 创建一个包含返回记录的存储过程
- php - 刀片中的 Laravel 5.8 在 @php 指令中看不到来自 @foreach 的变量
- spring-boot - 如何使用 resttemplate 和 springboot 捕获自定义异常?
- linux - 我正在编辑我的 .bashrc 文件以备份历史记录,但它没有按预期工作
- c++ - gcc vs clang:静态转换时在未使用的模板专业化中解析了 noexcept
- mule4 - 有没有人在 Mule 4, Anypoint studio 7.3.2 中遇到过这个错误 - “执行脚手架时出错”
- java - 在单例对象中克隆某些东西
- c# - 不同的安装文件夹取决于“使用共享运行时”选项选择
- mongodb - 在mongodb中过滤大数组
- spring - 为什么我添加 apache poi 依赖项后 maven pom.xml 文件会显示错误?