当前位置: 首页 > wzjs >正文

五金设备网站建设店铺推广软文案例

五金设备网站建设,店铺推广软文案例,重庆市工程建设交易中心网站,国外扁平化风格网站下面是一个完整的 GetX 示例,演示如何在一个组件中更新状态,并在另一个组件中获取更新后的数据。我们将使用 GetX 的状态管理工具(GetxController Obx/GetBuilder)。 1. 定义 Controller 首先,创建一个 GetxControll…

下面是一个完整的 GetX 示例,演示如何在一个组件中更新状态,并在另一个组件中获取更新后的数据。我们将使用 GetX 的状态管理工具(GetxController + Obx/GetBuilder)。


1. 定义 Controller

首先,创建一个 GetxController 来管理状态。

counter_controller.dart
import 'package:get/get.dart';class CounterController extends GetxController {// 使用 Rx 包裹的响应式变量RxInt count = 0.obs;// 更新状态的方法void increment() {count.value++;}
}

2. 在 WidgetA 中更新状态

创建一个按钮组件,点击时调用 increment() 更新状态。

widget_a.dart
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'counter_controller.dart';class WidgetA extends StatelessWidget {final CounterController controller = Get.put(CounterController());WidgetA({super.key});Widget build(BuildContext context) {return ElevatedButton(onPressed: () {// 调用 Controller 的方法更新状态controller.increment();},child: const Text('Increment Counter'),);}
}

3. 在 WidgetB 中获取状态

另一个组件监听 count 的变化,并实时显示最新值。这里提供两种方式:

方式 1:使用 Obx(响应式更新)
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'counter_controller.dart';class WidgetB extends StatelessWidget {WidgetB({super.key});Widget build(BuildContext context) {final CounterController controller = Get.find<CounterController>();return Obx(() => Text('Current Count: ${controller.count.value}',style: Theme.of(context).textTheme.headlineMedium,),);}
}
方式 2:使用 GetBuilder(局部更新)
class WidgetB extends StatelessWidget {WidgetB({super.key});Widget build(BuildContext context) {return GetBuilder<CounterController>(builder: (controller) {return Text('Current Count: ${controller.count.value}',style: Theme.of(context).textTheme.headlineMedium,);},);}
}

4. 整合到主页面

将两个组件放在同一个页面中测试。

main.dart
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'widget_a.dart';
import 'widget_b.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});Widget build(BuildContext context) {return GetMaterialApp( // 注意:必须用 GetMaterialApphome: Scaffold(appBar: AppBar(title: const Text('GetX Example')),body: const Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [WidgetB(), // 显示状态SizedBox(height: 20),WidgetA(), // 更新状态],),),),);}
}

效果

  • 点击 WidgetA 的按钮时,CounterController 中的 count 会递增。
  • WidgetB 会自动刷新并显示最新的计数器值。

关键点说明

  1. Get.put() vs Get.find()

    • Get.put():注册 Controller(通常在首次使用时调用)。
    • Get.find():获取已注册的 Controller(无需重复创建)。
  2. 响应式 vs 非响应式

    • Obx:监听 .obs 变量,变化时自动刷新(需配合 Rx 类型)。
    • GetBuilder:手动调用 update() 时刷新(适合非响应式变量)。
  3. GetMaterialApp

    • 必须使用 GetMaterialApp 替代 MaterialApp,这是 GetX 的根上下文。

补充:如何手动触发更新?

如果在 CounterController 中不使用 .obs,可以通过 update() 方法通知界面刷新:

class CounterController extends GetxController {int count = 0;void increment() {count++;update(); // 通知 GetBuilder 刷新}
}

此时 WidgetB 必须使用 GetBuilder 才能生效。


通过这个例子,你可以清晰看到 GetX 的状态更新跨组件共享状态的流程。GetX 的语法更简洁,适合中小型项目快速开发。

http://www.dtcms.com/wzjs/452724.html

相关文章:

  • 电子政务网站建设网站自然排名优化
  • 美国网站人肉收做优化设计一年级下册数学答案
  • 建设银行企业年金如何将网站的关键词排名优化
  • 凡客精选app搜索引擎优化的英文缩写
  • 周浦手机网站建设公司一键制作免费网站的app
  • 做外贸家纺资料网站交换友情链接的好处
  • 一个织梦两个网站大型网站建设公司
  • 图片 网站源码seo搜索引擎优化哪家好
  • 网站建设需要哪些资料关键词优化app
  • 温州微网站制作哪里有百度快照有什么用
  • 网站开发案例中国seo关键词优化工具
  • 首页网站备案号添加公司网站推广方案
  • 怎么用asp.net做网站推广工具有哪些
  • WordPress电影评分模板杭州上城区抖音seo有多好
  • 浏览器主页苏州关键词优化搜索排名
  • 房地产网站cms成都营销型网站制作
  • 网站开发运营费用百度企业
  • 湘潭网络公司网站建设拼多多关键词排名在哪里看
  • 仙居建设规划局网站新人跑业务怎么找客户
  • 建设银行房有e通网站厉害的seo顾问
  • 金花站长工具怎么做关键词排名靠前
  • 广州网站制作工作室今天刚刚发生的重大新闻
  • 17.zwd一起做网站企业培训计划
  • 怎样做旅游视频网站seo代理
  • 企业如何选择网站镇江网站建设企业
  • 叮当快药网站谁做的网站建设制作免费
  • WordPress头像美化插件seo关键字优化技巧
  • 普通网站能不能用vue做几个小功能湖南网站建设推广
  • 网站制作的部分数据分析培训机构哪家好
  • 福州网站建设推进网站搜索引擎优化案例