颤振:如何将蜂巢监视绑定到 getx 中的 RxList 对象
Posted
技术标签:
【中文标题】颤振:如何将蜂巢监视绑定到 getx 中的 RxList 对象【英文标题】:flutter : how to bind hive watching into RxList object in getx 【发布时间】:2021-10-07 02:15:55 【问题描述】:我正在同时使用 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 列表?
【问题讨论】:
【参考方案1】:将 late Stream<List<VocabularyModel>> allVocabs;
更改为 RxList:
final allVocabs = RxList<VocabularyModel>([]);
然后在onInit()
上将您的流绑定到它:
allVocabs.bindStream(repository.watchVocabsFromdb());
之后,您可以像往常一样使用Obx
或GetX
观察它。
【讨论】:
什么都不返回。我如何在这个方法`watchVocabsFromdb()`@S.M.中查看所有数据。安吉尔以上是关于颤振:如何将蜂巢监视绑定到 getx 中的 RxList 对象的主要内容,如果未能解决你的问题,请参考以下文章
我正在将我的颤振应用程序的状态管理更改为 getx,我遇到了在下拉选择后更改应用程序状态的问题