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

效果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM