颤振:如何将蜂巢监视绑定到 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&lt;List&lt;VocabularyModel&gt;&gt; allVocabs; 更改为 RxList:

final allVocabs = RxList<VocabularyModel>([]);

然后在onInit() 上将您的流绑定到它:

allVocabs.bindStream(repository.watchVocabsFromdb());

之后,您可以像往常一样使用ObxGetX 观察它。

【讨论】:

什么都不返回。我如何在这个方法`watchVocabsFromdb()`@S.M.中查看所有数据。安吉尔

以上是关于颤振:如何将蜂巢监视绑定到 getx 中的 RxList 对象的主要内容,如果未能解决你的问题,请参考以下文章

我正在将我的颤振应用程序的状态管理更改为 getx,我遇到了在下拉选择后更改应用程序状态的问题

铸造模型不适用于 getX 颤振

在使用 Hive 进行颤振时,您如何将自定义对象从 POST 响应正文添加到框?

颤振蜂巢盒不可听

蜂巢 - 如何每天自动将数据附加到蜂巢表?

如何将地图转换为蜂巢中的列?