loadMore method

  1. @override
Future<void> loadMore()
override

Implementation

@override
Future<void> loadMore() async {
  if (_isDisposed ||
      !_state.hasMore ||
      _state.isRefreshing ||
      _state.isLoadingMore) {
    return;
  }

  _state.updateState(isLoadingMore: true);
  _state.clearError();
  if (!_isDisposed) {
    notifyListeners();
  }
  try {
    final response = await loadData();
    _state.addData(response.data);
    _state.updateState(
      pageNum: _state.pageNum + 1,
      hasMore: _hasMoreData(response),
      isLoadingMore: false,
    );
    refreshController.loadComplete();
  } catch (e) {
    _state.updateState(
      isLoadingMore: false,
      error: e.toString(),
    );
    refreshController.loadFailed();
  } finally {
    if (!_isDisposed) {
      notifyListeners();
    }
  }
}