Flutter獲取遠程數(shù)據(jù) 自動刷新UI界面

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    //需要構建一個material的部件
    return MaterialApp(
      title: '獲取遠程數(shù)據(jù)并解析為模型',
      home: MyPage(),
    );
  }
}

class MyPage extends StatefulWidget {
  //必須重寫該方法 返回state
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return MyState();
  }
}

class MyState extends State<MyPage> {
  String ddddd = "ffffffff";

//  @override
//  void setState(fn) {
//    // TODO: implement setState
//    super.setState(fn);
//
//  }

  //必須重寫build方法 - 返回一個部件
  @override
  Widget build(BuildContext context) {
    // TODO: implement build

    return Scaffold(
      appBar: AppBar(
        title: Text('數(shù)據(jù)轉模型'),
      ),
      body: Column(
        children: <Widget>[

          Container(
              child: GestureDetector(
            child: Text(ddddd),
//                onTap: fetchPost,
            //刷新界面
//            onTap: fetchPost, //這里需要的是一個方法, 而不是一個方法的返回值
              onTap: (){
                 fetchPost().then((value){
                    setState(() {
                      ddddd = value;
                    });
                 });
              },
          ))
        ],
      ),
    );
  }
}

//返回String, 顯示到text文本部件上
//調用接口 獲取服務端數(shù)據(jù)
Future<String> fetchPost() async {
  final response =
      await http.get("https://wanandroid.com/wxarticle/chapters/json");
  final result = response.body;
  print(result);
  return result;
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容