Flutter getx 控制器获取当前页面上下文

Geo*_*off 8 flutter flutter-getx

我想使用上下文在 getxcontroller 方法中显示来自酷警报的自定义对话框。我创建了以下控制器

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
      );
   }

}
Run Code Online (Sandbox Code Playgroud)

我在我的无状态小部件中使用这个控制器,例如

class HomePage extends StatelessWidget {
   HomePage({ Key? key }) : super(key: key);

   final _c = Get.find<HomePageController>();


    @override
    Widget build(BuildContext context) {
        return Container(
  
          );
    }
 }
Run Code Online (Sandbox Code Playgroud)

我如何在控制器中获取当前主页 BuildContext 以显示酷警报。

MOR*_*ASH -2

您需要在主页上初始化控制器,如下所示

class HomePage extends StatelessWidget {
   HomePage({ Key? key }) : super(key: key);

   final _c = Get.put(HomePageController())..getData(context);


    @override
    Widget build(BuildContext context) {
        return Container(
  
          );
    }
 }
Run Code Online (Sandbox Code Playgroud)

这将调用 getData 函数并删除 onInit 函数并在 getData 函数中传递 Buildcontext 上下文参数。