如何使用 RefreshIndicator 从 api 加载新数据

Posted

技术标签:

【中文标题】如何使用 RefreshIndicator 从 api 加载新数据【英文标题】:how to load new data from api using RefreshIndicator 【发布时间】:2021-08-02 14:58:30 【问题描述】:

Future<void> _fetchPage(int pageKey) async 
    try 
      final newItems = await ApiServices.fetchArticleList(pageKey, _pageSize);

      final isLastPage = newItems.length < _pageSize;
      if (isLastPage) 
        _pagingController.appendLastPage(newItems);
       else 
        final nextPageKey = pageKey + newItems.length;
        _pagingController.appendPage(newItems, nextPageKey);
      
     catch (error) 
      print(error);
      _pagingController.error = error;
    
  

所以,我有方法 _fetchPage() 最初从 api 加载数据,但刷新时新数据不会在屏幕中更新。任何帮助将不胜感激。

【问题讨论】:

我尝试过使用 ``` Future _pullRefresh(BuildContext context) async return await _fetchPage(0); ``` 【参考方案1】:

将您的 onRefresh 回调更改为

onRefresh:()=>_fetchPage(0)

您的代码中的_fetchPage 方法需要一个参数,但您没有传递该值。因为onRefresh 回调没有任何值可以作为参数传递给函数

【讨论】:

我已将 0 作为参数传递 我的意思是使用完整的函数调用而不是方法引用。将任何有效键作为参数传递 我按照你的建议做了,仍然没有更新 UI 刷新时调用api吗?

以上是关于如何使用 RefreshIndicator 从 api 加载新数据的主要内容,如果未能解决你的问题,请参考以下文章

FlutterListView 列表高级功能 ( RefreshIndicator 下拉刷新组件 )

RefreshIndicator

Flutter RefreshIndicator 禁用刷新

Flutter RefreshIndicator 禁用刷新

Flutter RefreshIndicator 禁用刷新

Flutter RefreshIndicator 禁用刷新