繁体   English   中英

Flutter GetX setState

[英]Flutter GetX setState

bool download=false; setState(() {download=true;});download==true?Text("new"):("old");

如何在没有状态小部件的情况下使用 get X 编写此代码。

谢谢;

首先定义一个 controller class

class ControllerClass extends GetxController{
 RxBool download == false.obs;
}

在你的无状态 class 你可以 state 一组有两种方法

像这样先注入一个 controller

 ControllerClass controller = Get.put(ControllerClass());

第一的:

    Obx(()=>controller.download.value == true?Text("new"):("old"))

在一些 function

downloadCondition(){
   controller.download.value == // true or false;

}

第二:

    GetBuilder<ControllerClass>(builder: (controller){ return 
     controller.download.value == true? 
    Text("new"):("old"));}

在一些 function

downloadCondition(){
   controller.download.value == // true or false;
 controller.update();
}

首先尝试创建一个 controller:

 class ControllerName extends GetxController {
    final download = false.obs;
    
       yourFunc(){
        download(!download.value);
   }
    }

我通常使用obx然后

    // You can also put your controller above on stateful or inside depends on you
       // final controller = Get.put(ControllerName());
        class YourPageName extends StatelessWidget {

       YourPageName({Key? key}) : super(key: key);

     final controller = Get.put(ControllerName());

      @override
      Widget build(BuildContext context) {
        return Obx(()=>
            Scaffold(
           body: SafeArea(
             child: Column(
                 children:[
                      Text(controller.download.isFalse ? "Old" : "New"),
                      SizedBox(
                      height: 60,
                     width: 120,
                     child: ElevatedButton(
                    style: ElevatedButton.styleFrom(
                   primary: Colors.red,
                child: Center(
                   child: Text("Click")
                       ),
                     onPressed: ()=>controller.yourFunc(),
                         ),
                        ),
                 ]
                ),
            ),
          ),
          );
       }
        
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM