我想使用context在getxcontroller方法中显示cool alert的自定义对话框。
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
);
}
}
我在我的无状态小部件中使用这个控制器
class HomePage extends StatelessWidget {
HomePage({ Key? key }) : super(key: key);
final _c = Get.find<HomePageController>();
@override
Widget build(BuildContext context) {
return Container(
);
}
}
我怎样才能在控制器中获得当前主页BuildContext,以便显示很酷的警报。
4条答案
按热度按时间mm5n2pyu1#
如果你想显示一个对话框或snackbar,需要上下文作为必需的agument。你可以使用
Get.dialog()
和Get.snackbar
,它们的功能与showDialog
和showSnackbar
相同,但*without*
上下文或scaffodicnyk63a2#
你可以将上下文添加到construct函数中:
对于HomePageController:
注意:需要用
Future.delayed(Duration.zero)
Package 函数,否则会抛出错误i2byvkas3#
你可以简单的使用
它看起来会像这样
guicsvcw4#
您需要在主页上初始化控制器,如下所示
这将调用getData Function并删除getData Function中的onInit Function和Pass Buildcontext上下文参数。