这大概有点简单,我想弹出一个小部件并传递不同的参数,这就是我的意思:
class MyScreen extends StatefulWidget {
final String param0;
final String param1;
final String param2;
MyScreen(param0,param1,param2);
@override
MyState createState() => new MyScreenState();
}
...
我想回到此小部件传递参数,例如:
Navigator.pop(context, "NewParam0", "NewParam1", "NewParam2");
但它不起作用。
我可以使用1个参数和上下文弹出消息,但不适用于多个参数,
有什么主意吗?
答案 0 :(得分:1)
是的,解决方案很简单!我处理此问题的方法是弹出一个对象。例如,Map<String, String>
:
Navigator.pop(context,
{"NewParam0": "param0value", "NewParam1": "param1value", "NewParam2": "param2value"}
);
(请参见https://api.flutter.dev/flutter/widgets/Navigator/pop.html和https://flutter.dev/docs/cookbook/navigation/returning-data)
您还可以弹出一个轻量级的类,该类将填充默认参数,等等。如果您要来回传递很多复杂性,尽管在那时,我可能会尝试重做状态管理。