flutter 如何使用Get.back()将值从page2传递回page1

3pvhb19x  于 2023-04-07  发布在  Flutter
关注(0)|答案(1)|浏览(798)

以下是我正在尝试的
1.第1页-要求选择一个值。
1.第2页从列表中选择值。
1.选择值后,导航回第1页
1.所选值应显示在第1页中。
代码片段会有所帮助。

7gyucuyw

7gyucuyw1#

可能有各种不同的解决方案…
下面是一种方法:
参见https://docs.flutter.dev/development/data-and-backend/state-mgmt/simple
你写的可能是一个经典的“提升状态”的例子,你把值保存在Page 1和Page 2的父控件中,父控件的值是一个有状态的控件,你可以通过构造函数把值和处理函数(选择值)传递给Page 1和Page 2(最简单的解决方案),“值”存储在父控件中(准确地说:在父对象的State对象中)作为状态变量。
====编辑====
对不起,我从来没有使用过GetX,我只是发现GetX状态管理的概念是完全避免使用Stateful Widgets *...(不要使用Flutter工具包,让我们来对抗它;- )
也许你可以根据这篇博客文章尝试一下,它向你展示了一个简单的解决方案:(无Obx)https://helloyogita.medium.com/flutter-state-management-with-getx-5b8cad6a33f7
GetX使用GetxController类来存储状态值。

//----------
/storing the state value
class CounterController extends GetxController {
  int counter = 0;

  void increment() {
    counter++;
    modify();
  }
}


//---------------
//setting the value in another widget

final counterCtl = CounterController();
....
onPressed: () { 
    counterCtl.increment();
    }


//------------------
//using the value

class DemoGetBuilder extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GetBuilder<CounterController>(
        init: CounterController(),
        builder: (controller) {
          return Text("Value = ${controller.counter}");
        });
  }
}

相关问题