flutter getx传递参数

发送:

Get.to(SpeedLimitPage(), arguments: bean);

接收:

bean = Get.arguments;

特别注意:

Getx的init里面接收不到

onReady里面可以接收到,但是太晚了。页面已经渲染完毕了。

所以只能在page页面的 

@override
Widget build(BuildContext context) {
  bean= Get.arguments;
  return Container();

里面做接收!!!

### 如何在 Flutter 中使用 Getx 的 Controller #### 创建业务逻辑控制器 为了创建一个不依赖于 `GetxController` 类的自定义控制器,在 Flutter 应用程序中,可以通过简单地定义一个新的 Dart 文件来实现这一点。在这个文件里声明一个普通的类作为控制器,并且可以在其中定义用于管理应用状态的数据成员以及处理业务逻辑的方法[^1]。 ```dart class MyCustomController { int count = 0; void incrementCounter() { count++; // 更新UI或其他操作 } } ``` #### 初始化并获取实例 为了让其他部件能够访问这个控制器中的属性和函数,通常会采用单例模式或者通过依赖注入的方式提供全局可访问的对象。对于 GetX 而言,则推荐利用其内置的支持来进行初始化: - 使用 `Get.put()` 方法注册服务; - 或者借助命名路由参数传递特定页面所需的 controller 实例; 下面是一个例子展示如何在一个 StatefulWidget 内部完成上述过程。 ```dart import 'package:get/get.dart'; // 假设已经按照前面部分完成了MyCustomController类的编写 void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return GetMaterialApp( home: Scaffold( appBar: AppBar(title: Text('GetX Example')), body: Center(child: CounterPage()), ), ); } } class CounterPage extends StatelessWidget { final myCtrl = Get.put(MyCustomController()); // 注册controller @override Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Obx(() => Text('You have pushed the button this many times: ${myCtrl.count}')), // 绑定数据到视图 ElevatedButton(onPressed: () { myCtrl.incrementCounter(); }, child: Text('Increment')) ], ); } } ``` 这里需要注意的是,虽然可以直接修改 `count` 变量而不需要标记它为 `.obs` 属性也不必显式调用任何更新方法,但是当涉及到界面刷新时还是应该考虑使用响应式的编程方式以便更高效地同步模型层的变化至视图层。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值