美文网首页Flutter
Flutter GetX基础教程(九)GetxControlle

Flutter GetX基础教程(九)GetxControlle

作者: kadis | 来源:发表于2021-11-02 17:18 被阅读0次

    GetxController UniqueID

    我们在开发的过程中会碰到一种情况,就是多个地方引用了同一个属性,但我只想单独更新某一个地方,那么就可以用UniqueID来进行区分。

    第一步:应用程序入口设置

    import 'package:flutter/material.dart';
    import 'package:flutter_getx_example/GetXControllerUniqueIDExample/GetXControllerUniqueIDExample.dart';
    import 'package:get/get.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return GetMaterialApp(
          title: "GetX",
          home: GetXControllerUniqueIDExample(),
        );
      }
    }
    

    第二步:定义控制器继承自GetxController,并且定义uniqueID

    import 'package:get/get.dart';
    
    class CountController extends GetxController {
      var count = 0;
    
      void increment() {
        count++;
        update(['jimi_count']);
      }
    }
    

    第三步:实例化控制器并使用

    mport 'package:flutter/material.dart';
    import 'package:flutter_getx_example/GetXControllerUniqueIDExample/CountConroller.dart';
    import 'package:get/get.dart';
    
    class GetXControllerUniqueIDExample extends StatelessWidget {
    
      CountController countController = Get.put(CountController());
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text("GetX Obx---GetXController"),
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                GetBuilder<CountController>(
                  builder: (controller) {
                    return Text(
                      "计数器值为: ${controller.count}",
                      style: TextStyle(color: Colors.red, fontSize: 30),
                    );
                  },
                ),
                GetBuilder<CountController>(
                  id: 'jimi_count',
                  builder: (controller) {
                    return Text(
                      "计数器值为: ${controller.count}",
                      style: TextStyle(color: Colors.green, fontSize: 30),
                    );
                  },
                ),
                SizedBox(height: 20,),
                ElevatedButton(
                  onPressed: () => countController.increment(),
                  child: Text("增加"))
              ],
            ),
          ),
        );
      }
    }
    

    效果展示

    image

    总结

    本章节对GetxController数据赋值数据更新事件监听生命周期UniqueID 进行了讲解,也明白了怎么用GetxController来对项目的UI代码与业务逻辑进行拆分。

    相关文章

      网友评论

        本文标题:Flutter GetX基础教程(九)GetxControlle

        本文链接:https://www.haomeiwen.com/subject/xyfvaltx.html