Flutter showModalBottomSheet数据没有刷新问题

1.showModalBottomSheet数据未刷新
2.采用setState刷新,页面没有被重新绘制
3.数据是在showModalBottomSheet内部刷新的,用的方法是setDialogState
4.或者在showModalBottomSheet前就加载完成数据,比如我之前的版本是_getDio.then(showModalBottomSheet…),接口调完再弹出表单

showModalBottomSheet(
context: context,
builder: (BuildContext bc) {
// 数据未传回时显示圆圈加载中,true表示加载中,还用来防止反复加载
 var hasLoadding = true;
 return StatefulBuilder(
     builder: (context, setDialogState){
     // 防止接口被反复加载
       hasLoadding?_getTableData(_dataList[index]['majorName'],
           _dataList[index]['schoolName']).then((value) =>
         setDialogState((){
         // 在此处做数据的重新赋值,dialog算新页面,setstate的页面刷新没有影响到showModalBottomSheet出的页面
           tableList = value;
           hasLoadding = false;
         })
       ):print('加载完成');
       return  hasLoadding?Container(
         child: Center(
           child: CircularProgressIndicator(),
         ),
       ):
       Stack(
         children: <Widget>[
           Container(
             height: 60.0,
             width: double.infinity,
             color: Colors.black54,
           ),
           Container(
             height: 300,
             decoration: BoxDecoration(
                 color: Colors.white,
                 borderRadius: BorderRadius.only(
                   topLeft: Radius.circular(25),
                   topRight: Radius.circular(25),
                 )),
           ),
           Container(
             //color: Colors.red,
             height: 300,
             child: FlatButton(
               onPressed: () {
                 print('点击了表格');
               },
               child: Container(
                 alignment: Alignment.center,
                 padding:
                 EdgeInsets.only(top: 33.0),
                 child: ShowCollegeDetailTable(
                     majorName: _dataList[index]
                     ['majorName'],
                     schoolName: _dataList[index]
                     ['schoolName'],
                     tableList: tableList,
                     forecastRank: forecastRank),
               ),
             ),
           ),
         ],
       );
     }
 );
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值