异步请求和等待
Dart中的异步请求和等待和ES6中的方法很像,直接使用async...await就可以实现。比如下面作了一个找朋友的方法,然后进行跳转,注意这时候是异步的。等待结果回来之后,我们再显示出来内容。具体代码如下:
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: RouteButton(), ); } } class RouteButton extends StatelessWidget { @override Widget build(BuildContext context) { return RaisedButton( onPressed: (){ _navigateToYou(context); }, child: Text('找到你'), ); } } _navigateToYou(BuildContext context) async{ final result = await Navigator.push( context, MaterialPageRoute(builder: (context)=>You()) ); //数据回来后 下方会显示选择的数据 Scaffold.of(context).showSnackBar(SnackBar(content:Text('$result'))); } class You extends StatelessWidget{ @override Widget build(BuildContext context){ return Scaffold( appBar: AppBar(title: Text('hello'),), body: Center( child: Column( children: <Widget>[ RaisedButton( child: Text('号码1'), onPressed: (){ Navigator.pop(context,"号码1::1221312312321"); }, ), RaisedButton( child: Text('号码2'), onPressed: (){ Navigator.pop(context,"号码2::352423424324"); }, ) ], ), ), ); } }
效果