Flutter Getx List更新后界面不变化?常见问题排查指南
如果Getx List变了但界面没有变,可能有以下几种情况:
- 没有使用Obx
确保在Widget中使用了Obx来观察List的变化。
示例代码:
class MyWidget extends StatelessWidget {
final myList = Get.find<MyController>().myList;
@override
Widget build(BuildContext context) {
return Obx(() => ListView.builder(
itemCount: myList.length,
itemBuilder: (context, index) {
return Text(myList[index]);
},
));
}
}
- 没有使用List的obs方法
如果List的某个元素发生了变化,需要使用List的obs方法来使得List本身也能够被观察到。
示例代码:
class MyController extends GetxController {
final myList = ['A', 'B', 'C'].obs;
void changeList() {
myList[0] = 'D';
}
}
- 没有触发更新
如果List的变化不是由GetxController触发的,可能需要手动触发更新。
示例代码:
class MyController extends GetxController {
final myList = ['A', 'B', 'C'].obs;
void changeList() {
myList[0] = 'D';
// 手动触发更新
myList.refresh();
}
}
原文地址: https://www.cveoy.top/t/topic/lBl2 著作权归作者所有。请勿转载和采集!