请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

一个界面4个网络请求,返回数据setState方法如何调用啊

老师好,我现在一个界面有4个请求,对于返回数据渲染调用setState的次数如何控制啊?

正在回答 回答被采纳积分+3

1回答

CrazyCodeBoy 2021-03-19 00:57:29

可以将四个网络请求在一个方法中通过await调用,然后通过一个setstate更新界面。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕姐2098566 #1
    老师,谢谢你的回答。我用Future.wait做的:我有1个问题是像下面的具体的网络请求用future then好还是用await async好呢?请给一个建议!
     Future fetchMainPageMultiRequest() async {
    
        List<dynamic> responseX  =  await Future.wait([_getFocusData(),_getHotProductData(),_getBestProductData()]);
        print('-fetchMainPageMultiRequest--$responseX----');
        if(responseX.length>0){
          print('fetchMainPageMultiRequest');
          setState(() {
    
          });
          return responseX;
        }
        
      }
    //网络请求1 
      Future _getFocusData() async {
        print('_getFocusData');
        var api = '${Config.domain}api/focus';
        var result = await Dio().get(api);
        var focusList = FocusModel.fromJson(result.data);
        print('_getFocusData setState');
        this._focusData = focusList.result;
    
      }
    ////网络请求2
      Future _getHotProductData() async { }
      //网络请求3
      Future _getBestProductData() async { }
    回复 有任何疑惑可以回复我~ 2021-07-15 09:13:52
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信