異步請求和等待
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"); }, ) ], ), ), ); } }
效果



