Flutter FutureBuilder异步请求列表示例
阅读原文时间:2023年07月11日阅读:3

Flutter的FutureBuilder列表示例

import 'package:flutter/material.dart';
import '../service/service_method.dart';

class CartPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
var formData = {'adCode': '', 'isDebug':'aa'};
return Scaffold(
body: FutureBuilder( //异步请求再渲染 不用setState改变状态
future: request('get','chinaAddr',formData:formData), //可选参数formData:formData=属性名:属性值
builder: (context, snapshot){ //snapshot就是_calculation在时间轴上执行过程的状态快照
if(snapshot.hasData){ //判断有没有值
//print(snapshot.data);

          //数据处理  
          var data = snapshot.data;  
          List<Map> chinaData = (data\['data'\] as List).cast();  
          //print(chinaData);

          return ListView.builder(  
            itemCount: chinaData.length,  
            itemBuilder: (context, index) {  
              final Map<String, dynamic> item = (chinaData)\[index\];  
              return ListTile(  
                title:  Text('${item\["adName"\]}'),  
                subtitle: Text('${item\["adCode"\]}'),  
              );  
            }  
          );

       }else{  
          return Center(  
            child: Text('加载中...'),  
          );  
       }  
     }  
  ),  
);  

}
}

效果图: