首页 > 解决方案 > Flutter Navigator 弹出和异步多字段数据

问题描述

我有两个文本控制器,我想将两个文本控制器的数据从第二页传递到主屏幕,现在我的代码与一个变量一起工作正常,但是我如何传递多个变量并使用它们。

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(() {});
  }

标签: flutterflutter-layout

解决方案


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(() {});
}

推荐阅读