Flutter Navigator弹出并异步多个字段数据

时间:2019-12-13 21:29:27

标签: flutter flutter-layout

我有两个文本控制器,我想将两个文本控制器的数据从第二页传递到主屏幕,现在我的代码可以很好地使用一个变量,但是我如何传递多个变量并使用它们。

Container(
                  margin: EdgeInsets.only(top:30),
                  child:RaisedButton(
                    onPressed: (){
                    Navigator.pop(context, titleController.text); //i want to pass multiple controllers here
                      print(titleController.text);

                    },
                    child: Text("Submit"),
                  ),
                ), 

使用: 这是我使用返回数据的方式。对于一个文本字段来说效果很好,但我希望通过多个字段。

_navigateAndDisplaySelection(BuildContext context) async {

 final result = await Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => SecondScreen()),
    );

              varlistSection.insert(0,
            listSectionMethod("$result", "hello from click", Icons.forward), //result contains one text field data, i want to use it for more
          );
          setState(() {});
  }

1 个答案:

答案 0 :(得分:1)

Fayakon,您对一个变量所做的事情看起来不错。尝试像这样弹出时从第二页返回一个字符串列表,

List<String> list = new List<String>();
list.add(titleController.text);
list.add(detailController.text);
Navigator.pop(context, list);

然后在首页功能中使用它,

_navigateAndDisplaySelection(BuildContext context) async {

 final result = await Navigator.push(context,
      MaterialPageRoute(builder: (context) => SecondScreen()),
    );

 varlistSection.insert(0,
            listSectionMethod(result[0], result[1], Icons.forward), //index would be for the data you wanna use
          );
 setState(() {});
}