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

问题描述 投票:1回答:1

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

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(() {});
  }
flutter flutter-layout
1个回答
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(() {}); }

© www.soinside.com 2019 - 2024. All rights reserved.