flutter-异步请求选择回来的方法

异步请求和等待

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");
              },
            )
          ],
        ),
      ),
    );
  }
}

效果

原文地址:https://www.cnblogs.com/lxz-blogs/p/13229024.html