如何在 flutter 中使用 Navigator.pop() 方法传递多个值?

sha*_*did 6 flutter flutter-layout

Navigator.pop方法只能返回一个值,但我需要返回多个值。有没有办法使用返回多个值Navigator.pop()

我以前使用过Navigator.push,但是当我将多个变量从多个页面推送到一页时,它显示构造错误。

我已经被困在这里好几天了。

请帮我。

提前致谢。

mag*_*n94 6

您可以pop通过两种方式:

Navigator.of(context).pop(object);
Run Code Online (Sandbox Code Playgroud)

或者

Navigator.pop(context, object);
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,我都标记了该方法的可选object返回值。

如果您希望返回多个值,则需要将它们装箱在一个对象中,class或者Map其他什么。

拳击课程将如下所示:

class BoxedReturns{
    final int a;
    final int b;

    BoxedReturns(this.a, this.b);
}

//stuff
Navigator.of(context).pop(BoxedReturns(1,2));
Run Code Online (Sandbox Code Playgroud)

您可以使用地图做类似的事情,尽管我宁愿使用类方法:

Navigator.of(context).pop({"a":1,"b":2});
Run Code Online (Sandbox Code Playgroud)


Mik*_*kin 0

创建一个包含所有数据的新数据结构类。
您还可以使用映射或列表,但如果数据结构发生变化,这将是一个可能的错误源。