flutter - 颤振:如何将蜂巢监视绑定到 getx 中的 RxList 对象
问题描述
我正在一起使用 hive 和 getx,我正在尝试使用以下watch
方法获取 hive 中的所有数据:
Stream<List<VocabularyModel>> watchVocabsFromdb() => hiveService.vocabularyBox
.watch()
.map((event) => hiveService.vocabularyBox.values
.where((element) => element.remember == true)
.toList());
在控制器中我使用这种方法:
class WordsController extends GetxController {
WordsController();
late Stream<List<VocabularyModel>> allVocabs;
@override
void onReady() {
log.info('onReady');
super.onReady();
allVocabs = repository.watchVocabsFromdb();
}
内部视图我正在使用 Obx 来捕捉蜂巢箱的变化:
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Obx(() => ListView.builder(
itemCount: controller.allVocabs.length, ///... Future<int> is not int
itemBuilder: (context, index) {
return Container();
},
)),
),
如何使用 hive 之类的 obs 列表?
解决方案
更改late Stream<List<VocabularyModel>> allVocabs;
为 RxList:
final allVocabs = RxList<VocabularyModel>([]);
然后onInit()
将您的流绑定到它:
allVocabs.bindStream(repository.watchVocabsFromdb());
之后,您可以像往常一样使用Obx
或观察它GetX
。
推荐阅读
- css - 从草图导出的材质 SVG 未显示在客户端的浏览器中,但在我的浏览器中很好 - 如何测试?
- python - 给我的向量:ValueError:使用序列设置数组元素
- bash - 如何以比“识别”更快的方式提取“创建日期”
- firebase - Flutter 中的 LinearProgressIndicator 使用 Firebase
- angular - 悬停时角度2扩展选择
- css - 媒体查询问题仅在 978px
- c - C 中类型转换丢失的信息
- dompdf - dompdf 0.8.2 带有变量/代码 php 的 pdf 模板
- python - python对象的内存分配
- c - 在 linux 中 fork 和 exec 几个孩子