这可能很简单,我想弹出一个小部件并传递不同的参数,这就是我所拥有的:
class MyScreen extends StatefulWidget {
final String param0;
final String param1;
final String param2;
MyScreen(param0,param1,param2);
@override
MyState createState() => new MyScreenState();
}
...
Run Code Online (Sandbox Code Playgroud)
我想回到这个传递参数的小部件,如下所示:
Navigator.pop(context, "NewParam0", "NewParam1", "NewParam2");
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我可以使用 1 个参数和上下文来弹出,但它不适用于多个参数,
任何想法?
是的,解决方案很简单!我处理这个问题的方法是弹出一个对象。例如,一个Map<String, String>:
Navigator.pop(context,
{"NewParam0": "param0value", "NewParam1": "param1value", "NewParam2": "param2value"}
);
Run Code Online (Sandbox Code Playgroud)
(参见https://api.flutter.dev/flutter/widgets/Navigator/pop.html和https://flutter.dev/docs/cookbook/navigation/returning-data)
如果您需要来回传递很多复杂性,您还可以创建一个要弹出的轻量级类,它将填充默认参数等,但在那时,我可能会尝试稍微修改一下我的状态管理。
| 归档时间: |
|
| 查看次数: |
3908 次 |
| 最近记录: |