在渲染之前更新 getx 控制器中的值
Posted
技术标签:
【中文标题】在渲染之前更新 getx 控制器中的值【英文标题】:Update a value in a getx controller before it has been rendered 【发布时间】:2021-06-22 20:33:18 【问题描述】:我有一长串项目(对象),每个项目都有一个 getx 控制器。
Get.put(ItemController(itemModel), tag: itemModel.value.id.toString())
在创建项目图块时在ListView.builder()
中设置,但似乎控制器仅在图块显示时才真正创建,并且最初仅显示前 10 个左右。
然后我需要更新所有(许多)项目的值。
当我尝试更新项目控制器中的值时,它无法“找到”控制器(因为它们尚未创建)。
可以对同一个项目再次使用Get.put()
吗?还是有更好的方法来访问这些项目控制器?
【问题讨论】:
【参考方案1】:您需要创建一个循环遍历您的列表项和put
s 您对每个项的依赖项的方法。
你需要在build
方法上调用该方法,在ListView.builder
之前。
Get.put
时被调用。通常,在第一次使用该依赖项时会创建依赖项。所以当调用something.someOtherThing
时,GetX 会创建Something
。
【讨论】:
以上是关于在渲染之前更新 getx 控制器中的值的主要内容,如果未能解决你的问题,请参考以下文章
即使收到更新的数据,Flutter ListView.builder 的 UI 也不会被 getx 更新
在构建 GetX<LogoPickerController>(控制器:'LogoPickerController' 的实例,标签:null,有构建器,脏