Dart中的异步请求和等待和ES6中的方法很像,直接使用async...await就可以实现。

核心代码:

_navigateToAddress(BuildContext context) async{ //async是启用异步方法

    final result = await Navigator.push(//等待
context,
MaterialPageRoute(builder: (context)=> Address())
); Scaffold.of(context).showSnackBar(SnackBar(content:Text('$result')));
}

示例:

import 'package:flutter/material.dart';

void main(){
runApp(MaterialApp(
title:'页面跳转返回数据',
home:FirstPage()
));
} class FirstPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar:AppBar(title:Text("商品列表")),
body:Center(
child: RouteButton(),
)
);
}
} //跳转的Button
class RouteButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return RaisedButton(
onPressed:(){
_navigateToAddress(context);
},
child: Text('选择地址'),
);
} _navigateToAddress(BuildContext context) async{ //async是启用异步方法 final result = await Navigator.push(//等待
context,
MaterialPageRoute(builder: (context)=> Address())
); Scaffold.of(context).showSnackBar(SnackBar(content:Text('$result')));
}
} class Address extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar:AppBar(
title:Text('地址列表')
),
body:Center(
child:Column(
children: <Widget>[
RaisedButton(
child: Text('地址一'),
onPressed: (){
Navigator.pop(context,'地址一:北京');
},
) ,
RaisedButton(
child: Text('地址二'),
onPressed: (){
Navigator.pop(context,'地址二:上海');
},
) ,
],
)
) ,
);
}
}

Flutter页面跳转返回数据的更多相关文章

  1. Android first --- 页面跳转及数据传递

    页面跳转即数据传递 创建第二个界面Acivity *需要在清单文件中添加配置一个Actuvity标签 标签中如果带有这个子节点,则会在Android中添加一个快捷图标 <intent-filte ...

  2. iOS页面跳转及数据传递

    转: http://blog.csdn.net/wang9834664/article/details/8025571 iOS页面跳转: 第一种 [self.navigationController  ...

  3. Android应用开发基础之六:页面跳转和数据传递

    创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> <action ...

  4. Android初级教程理论知识(第五章页面跳转和数据传递)

    总体概述: Android四大组件 Activity BroadCastReceiver Service ContentProvider 创建第二个activity 新创建的activity,必须在清 ...

  5. flutter -------- 页面跳转和传值

    在安卓原生开发中,页面跳转可以用Intent类来具体实现: Intent intent =new Intent(MainActivity.this,second.class); startActivi ...

  6. 微信小程序 页面跳转传递数据

    点击view 跳转页面 <view class="album_image" data-album-obj="{{item}}" bindtap=" ...

  7. vue滚动行为控制——页面跳转返回上一个页面保留滚动位置

    需求分析: 一般这个功能在后台管理系统用的比较多,因为后台页面都是在当前页面打开,对于某些列表筛选页,如果列表数据比较多,页面就会滚动.当页面发生滚动,对列表数据进行查看或者编辑的时候,跳转到下一级页 ...

  8. android 学习随笔十四(页面跳转与数据传递)

    1.activity 创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> ...

  9. android 页面跳转,数据回传

    package com.example.firstpg.firstpg; import android.support.v7.app.ActionBarActivity; import android ...

随机推荐

  1. 思考---(科研99% )VS (产品75%)

    转目前人脸识别技术的挑战是什么? - 知乎 标签: | 发表时间:-- : | 作者: 出处:https://www.zhihu.com 也是放假太闲,上知乎来锻炼一下手指. 在回答题主的问题的时候, ...

  2. 微信小程序~性能

    (1)优化建议 setData setData 是小程序开发中使用最频繁的接口,也是最容易引发性能问题的接口.在介绍常见的错误用法前,先简单介绍一下 setData 背后的工作原理. 工作原理 小程序 ...

  3. 倍增法求lca:暗的连锁

    https://loj.ac/problem/10131 #include<bits/stdc++.h> using namespace std; struct node{ int to, ...

  4. Linux PXE 网络装机

    一.基础网络建设 Linux配置静态IP-192.168.5.1 # vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT= ...

  5. 错误信息: The server cannot or will not process the request due to something that is perceived to be a client error

    错误原因:在提交的表单中有 date 类型的数据,也就是不能传输日期类型的数据. 嗯!我知道,去吧!

  6. Newtonsoft.Json 自定义序列化器---时间

    IsoDateTimeConverter _IsoDateTimeConverter = new IsoDateTimeConverter() { DateTimeFormat = "yyy ...

  7. 2.1 什么是C++

    C++是一种通用程序设计语言,特别是面向系统程序设计. 1:是一个更好的C 2:支持数据抽象 3:支持面向对象的程序设计 4:支持通用型程序设计

  8. linux下MySQL的启动与访问

    启动与停止 1.启动 MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可. [root@test1 init.d]# /etc/init.d/mysql ...

  9. IDEA激活码(直到2020年6月)

    K6IXATEF43-eyJsaWNlbnNlSWQiOiJLNklYQVRFRjQzIiwibGljZW5zZWVOYW1lIjoi5o6I5p2D5Luj55CG5ZWGOiBodHRwOi8va ...

  10. ipkg-nas

    http://pkg.entware.net/binaries/x86-64/ https://forum.synology.com/enu/viewtopic.php?t=95346 http:// ...