Flutter getx - 使用 recative 列表作為參數會導致錯誤使用 getx 錯誤

我有帶有 RxList 的 GetXController,當我使用列表作為參數創建小部件時(這是唯一的可觀察對象),出現錯誤

[Get] the improper use of a GetX has been detected. 

控制器看起來像這樣:

class Controller extends GetxController {
  static Controller get to => Get.find();
  final RxList<int> numbers = <int>[].obs;
}

用法是這樣的:

class ShowWidget extends StatelessWidget {
  ShowWidget({Key? key}) : super(key: key);
  final Controller c = Controller.to;

  @override
  Widget build(BuildContext context) {
    return Container(
      height: 300,
      width: 300,
      color: Colors.red,
      child: (Obx(
        () => ItemsList(numbers: c.numbers),
      )),
    );
  }
}

如果我將列表長度添加為參數,它似乎可以正常工作,但我試圖了解為什麼這不起作用。

完整示例在這裡https://pastebin.com/WrQqqsPx

謝謝你的幫助。

SM 賈漢吉爾

儘管Rx默認情況下列表是(因此不需要.value調用/執行操作),但如果在觀察者小部件(Obx, GetX上觀察它們您要么必須訪問它們的元素或調用/調用任何方法/屬性。因為在您這樣做之前,它們仍然是Rx引用(如Stream)。只有在使用它們的實際值時才會觀察到它們。這很像 boxed/un-awaited Future

因此,您可以執行以下操作:

Obx(() => ItemsList(numbers: c.numbers.toList())),

或者:

Obx(() => ItemsList(numbers: c.numbers.call())),

.toList()不過我更喜歡打電話

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Getx 管理 Flutter ListView.builder

如何使用 GetX 使 Flutter 等待數據加載

Flutter 使用 Getx 更改图标按钮的主题和图标

Flutter 使用 GetX 本地化 Syncfusion 日历

如何在 Flutter 中使用 GetX 收听 FocusNode

如何使用 getx 传递参数?

Flutter GetX Obx [Get] 已檢測到 GetX 的不當使用。您應該只對將更新的特定小部件使用 GetX 或 Obx

Flutter Getx RxList 产品列表,名称-价格

Fluter:如何使用Getx更改变量?

使用 getX 抖动图像选择器

如何使用 Getx 在 Flutter 中为特定列表项增加计数器?

複選框列表不會在 flutter getx 中更新

Flutter,如何使用 getx 刷新我的控制器和請求

在Flutter GetX中使用没有控制器的可观察变量

我是否必須在我的 Flutter 應用程序中使用 Getx 控制器?

Flutter Getx 本地存储数据

Flutter GetX RxList 分配问题

Java中的过早优化:何时使用“ x = foo.getX()”与仅使用“ foo.getX()”

如何使用GetX使用Firestore流填充列表

是否可以在某个部分使用 Getx 状态管理,但不能在 Flutter App 的其他部分使用?

在flutter中使用getX打開頁面時自動調整頁面語言

如果在后台激活或最小化,如何使用 GetX Flutter 获取应用程序状态

我应该使用Point.x还是Point.getX()?

如何使用Getx检索Controller层内的TextEditingController?

如何使用 Getx 和 Auto Route 设置导航器?

如何在 getX boolean observable 中使用条件渲染

尝试使用 Obx 构建时 GetX Throwing TypeError

Flutter 和 getx:update() 不通知 GetBuilder

带有 Getx 的 Flutter DropdownButton 小部件