解决GetX Controller 生命周期方法调用异常的BUG
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class MyController extends GetxController {
var count = 0;
@override
void onReady() {
// 当控制器准备好后,更新UI
update();
super.onReady();
}
@override
void onClose() {
// 当控制器被销毁时,取消所有订阅
// 注意:这里假设你有一个需要取消的订阅,在实际应用中替换为你的订阅对象
// subscription?.cancel();
super.onClose();
}
// 其他逻辑...
}
class MyPage extends StatelessWidget {
final MyController controller = Get.put(MyController());
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Obx(
() => Text(
'${controller.count}',
style: TextStyle(fontSize: 24),
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: () => controller.count++,
child: Icon(Icons.add),
),
);
}
}
这个代码示例展示了如何在GetX框架中正确使用GetxController,并在控制器准备好时更新UI,以及在控制器关闭时取消订阅。这是处理控制器生命周期和避免BUG的标准做法。
评论已关闭