具有 .obs 和 hive 字段的 flutter 模型

标签 flutter flutter-hive flutter-getx

我对 Flutter 有点陌生。 我正在编写一个包含 Getx 和 Hive 包的应用程序。

我想通过使每个字段具有反应性来使我的模型可观察。我更喜欢这种方法,而不是让整个类在 Controller 中可见;这样做是模型本身引发了变化,在我看来这更类似于标准的 mvvm 方法(如果我错了你可以纠正我)。

我还想用@HiveField 标记我的模型字段。

现在,问题是我无法标记 Rx 字段,我被迫编写两个不同的字段,Rx 字段和 Hive 字段。 类似的东西:

  @HiveField(1)
  int _fieldDb;

  RxInt fieldRx;

  GbTrait(int value) :
    _fieldDb = value,
    fieldRx = value.obs;

通过这样做,我需要一直更新这两个值...有更好的方法吗? 非常感谢您的帮助。

最佳答案

您可以收听 Rx<T>就像你会使用 Stream 一样s,所以每次你设置一个值给那个 Rx<T>另一种方法将执行以更新也在 Hive 中的字段:

// ...
Rx<int> RxField  = 0.obs.
RxField.listen((newValue) {
 updateHiveField(newValue);
});

void updateHiveField(int newValue) {
 Hive.box("yourBoxName").putAt(indexOfField, newValue);
}

现在每次设置这样的值时:

RxField.value = 10;

updateHiveField方法将自动执行更新 Hive字段。

关于具有 .obs 和 hive 字段的 flutter 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65475958/

相关文章:

dart - 如何在 flutter 中基于同一个流 Controller 获取多个流?

android - 尝试使用 ButtonTheme 设置最小宽度时出错

flutter - 当 Hive 数据在 FireBaseMessage 的 onBackgroundMessage 处理程序中更新时,如何更新 UI 小部件?

flutter - hive 错误 : There is already a TypeAdapter

flutter - 如何在flutter中实现这种随机宽度 GridView

Flutter:表单验证同时验证所有文本字段

flutter - NoSuchMethodError:在空调用getter 'length'

flutter - 如何在 flutter 中显示动画 gif?

flutter - 如何在flutter中更新hive对象的特定字段?

android - Flutter从GetStorage列表中获取数据值