【发布时间】:2023-01-30 14:47:19
【问题描述】:
我正在尝试使用 Getx 在 flutter 中从我的数据库加载数据。我有一个包含子类别列表的类别列表,每个子类别中都有一个产品列表。问题是子类别页面的 UI 总是混淆要显示的数据列表,因为我通过 category_id 调用数据。使我的应用程序 UI 不稳定并且数据总是在变化的东西。
这是我的子类别页面代码:
GetBuilder<SubCategoriesController>(builder: (subCategories) {
Get.find<SubCategoriesController>()
.getSubCategories(widget.catId);
print(Get.find<SubCategoriesController>()
.getSubCategories(widget.catId));
return GridView.count(
crossAxisCount: 2,
shrinkWrap: true,
physics: ScrollPhysics(),
mainAxisSpacing: 16,
crossAxisSpacing: 16,
childAspectRatio: 90 / 100,
padding: EdgeInsets.all(16),
children: List.generate(subCategories.subCategoriesList.length,
(index) {
return _buildSingleSubCategory(
index,
SubCategoryModel.fromJson(
subCategories.subCategoriesList[index]));
}),
);
})
我试图打印输出
Get.find<SubCategoriesController>()
.getSubCategories(widget.catId)
我发现它一直在不断运行而不停止显示:Instance of 'Future<void>'
,而且每次都显示特定类别的数据,这很奇怪!
编辑:
Future<void> getSubCategories(int cat_id) async {
Response response = await subCategoriesRepo.getSubCategoriesList(cat_id);
//print(response.body);
if (response.statusCode == 200) {
_subCategoriesList = [];
_subCategoriesList.addAll(response.body);
_isLoaded = true;
update(); // = setState();
}
}
我发现这里调用的 update() 函数造成了问题,但是一旦删除它,我就根本得不到任何数据。
【问题讨论】:
标签: flutter flutter-getx