refreshData method

Future<void> refreshData()

刷新数据

Implementation

Future<void> refreshData() async {
  _currentPageNum = _pageNumFirst;
  try {
    final data = (await getList(pageNum: _pageNumFirst)) ?? [];
    if (U.isNullOrEmpty(data)) {
      _list.assignAll([]);
      afterGetList(data, _pageNumFirst);
      _pageState.value = PageState.empty;
    } else {
      _list.assignAll(data);
      refreshController.refreshCompleted();

      if (data.length < _pageSize) {
        if (_currentPageNum != _pageNumFirst) {
          refreshController.loadNoData();
        } else {
          refreshController.loadComplete();
        }
      } else {
        //防止上次上拉加载更多失败,需要重置状态
        refreshController.loadComplete();
      }

      /// 获取数据后
      afterGetList(data, _pageNumFirst);
      _pageState.value = PageState.normal;
    }
  } catch (e, s) {
    _handleCatch(e, s);
  }
}