ObjectBox Flutter:如何为watch方法设置查询限制?
ObjectBox给watch方法加查询限制的正确姿势
直接给你可行的实现方式:
// 方式一:链式调用设置limit再构建Query final query = box.query().limit(10).build(); // 方式二:先构建再设置limit属性 // final query = box.query().build()..limit = 10; // 用带limit的Query调用watch,再转换结果 final dataStream = query.watch(triggerImmediately: true).map((updatedQuery) => updatedQuery.find());
关键点说明:
- 不管是链式调用
limit(10)还是直接设置query.limit,只要Query实例带有limit限制,后续调用find()就会自动应用这个限制 watch()方法每次触发时会返回更新后的Query实例,调用它的find()自然会返回符合limit要求的最新数据
你之前用query.stream()表现不一致,是因为stream()是基于当前查询结果生成的流,而watch()会在数据发生变更时重新执行查询并推送最新的Query,这才是实时监听数据变化的正确姿势。
内容的提问来源于stack exchange,提问作者Printer
相关产品推荐
相关产品推荐

