以下是我正在尝试的1.第1页-要求选择一个值。1.第2页从列表中选择值。1.选择值后,导航回第1页1.所选值应显示在第1页中。代码片段会有所帮助。
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-5b8cad6a33f7GetX使用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}"); }); } }
1条答案
按热度按时间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类来存储状态值。