'Flutter getx controller get the current page context
I would like to use context to show a custom dialog from cool alert in getxcontroller method. I have created the following controller
class HomePageController extends GetxController {
@override
void onInit() {
super.onInit();
getData();
}
void getData(){
//perform http request here
//show cool alert
CoolAlert.show(
context: context, //here needs the build context
type: CoolAlertType.success
);
}
}
Am using this controller in my stateless widget like
class HomePage extends StatelessWidget {
HomePage({ Key? key }) : super(key: key);
final _c = Get.find<HomePageController>();
@override
Widget build(BuildContext context) {
return Container(
);
}
}
How can i get the current homepage BuildContext in the controller inorder to show the cool alert.
Solution 1:[1]
If you want to show a dialog or snackbar what need context as a required agument. You can use Get.dialog() and Get.snackbar, there function work same as showDialog and showSnackbar but *without* context or scaffod
Solution 2:[2]
you can add the context to the construct function:
@override
Widget build(BuildContext context) {
Get.put(HomePageController(context: context));
return Container();
}
and for the HomePageController:
note: you need to wrap the function with Future.delayed(Duration.zero)
otherwise it will throw an error
class HomePageController extends GetxController {
late BuildContext context;
HomePageController({required this.context});
void getData(){
Future.delayed(Duration.zero,(){
CoolAlert.show(
context: context, //here needs the build context
type: CoolAlertType.success
);
});
}
...
}
Solution 3:[3]
You Need to Initialize the controller on the homepage like following
class HomePage extends StatelessWidget {
HomePage({ Key? key }) : super(key: key);
final _c = Get.put(HomePageController())..getData(context);
@override
Widget build(BuildContext context) {
return Container(
);
}
}
This will call getData Function and remove the onInit Function and Pass Buildcontext context parameter in getData Function.
Solution 4:[4]
Noel O'Boyle has published some R code that implements variable importance in CART, here:
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Tuan |
| Solution 2 | |
| Solution 3 | |
| Solution 4 | rw2 |
