在呈现之前更新 getx 控制器中的值

时间:2021-06-22 20:33:18

标签: flutter-getx

我有一长串项目(对象),每个项目都有一个 getx 控制器。 Get.put(ItemController(itemModel), tag: itemModel.value.id.toString()) 在创建项目磁贴时设置在 ListView.builder() 中,但似乎控制器仅在磁贴显示时才实际创建,并且只有前 10 个左右最初显示。

然后我需要更新所有(许多)项目的值。

当我尝试更新项目控制器中的值时,它无法“找到”控制器(因为它们尚未创建)。

对于同一个项目可以再次使用 Get.put() 吗?或者有没有更好的方法来访问这些项目控制器?

1 个答案:

答案 0 :(得分:0)

您需要创建一个方法来循环遍历您的列表项并put 为每个项创建依赖项。 您需要在 build 之前的 ListView.builder 方法上调用该方法。

  • GetX 仅在需要时创建依赖项。就像,如果你只是 'Get.put(Something())',它不一定会在调用 Get.put 时被调用。通常在第一次使用该依赖项时会创建依赖项。因此,当调用 Something 时,GetX 将创建 something.someOtherThing