flutter_paging icon indicating copy to clipboard operation
flutter_paging copied to clipboard

Retry function work incorrectly if the list is empty

Open tronghuy5555 opened this issue 3 years ago • 0 comments

  Future<List<D>> loadPage({bool isRefresh = false}) async {
    if ((currentKey == null) || isRefresh) {
      if (_cancelableOperation != null && !_cancelableOperation!.isCompleted)
        _cancelableOperation!.cancel();
      _cancelableOperation = CancelableOperation.fromFuture(loadInitial(pageSize));
      final results = await _cancelableOperation!.valueOrCancellation();
      if (autoDetectEndList) {
        isEndList = ((results?.item1.length ?? 0) < pageSize);
      }
      currentKey = results?.item2;
      return results?.item1 ?? [];
    } else {
      _cancelableOperation =  CancelableOperation.fromFuture(loadPageAfter(currentKey!, pageSize));
      final results = await _cancelableOperation!.valueOrCancellation();
      currentKey = results?.item2;
      if (autoDetectEndList) {
        isEndList = ((results?.item1.length ?? 0) < pageSize);
      }
      return results?.item1 ?? [];
    }
  }
Step: Empty list -> call retry function
Expect: loadInitial called
Actual: loadPageAfter called

tronghuy5555 avatar May 09 '22 09:05 tronghuy5555