mEasyGetPageData<T> function
Future<IndicatorResult>
mEasyGetPageData<T>({
- required Future<
List< reqData,T> ?> - required MPageState<
T> mPageState, - List<
T> ? handleData(- List<
T> value
- List<
- EasyRefreshController? easyRefreshController,
如果子组件有包含可滑动组件。 要套一个EasyRefresh来隔绝其他的EasyRefresh,防止EasyRefresh的 child 里面有滑动的内容造成层级错误。
Implementation
// return EasyRefresh(
// controller: EasyRefreshController(),
// child:
/// ```
Future<easy.IndicatorResult> mEasyGetPageData<T>({
required Future<List<T>?> reqData,
required MPageState<T> mPageState,
List<T>? Function(List<T> value)? handleData,
EasyRefreshController? easyRefreshController,
}) async {
easy.IndicatorResult result = easy.IndicatorResult.success;
try {
List<T>? value = await reqData;
if (value == null) {
mPageState.error.value = true;
result = easy.IndicatorResult.fail;
} else {
if (handleData != null) {
value = handleData(value);
}
if (mPageState.goPage == 1) {
mPageState.dataList.value = value!;
} else {
mPageState.dataList.addAll(value!);
}
if (mPageState.goPage > 1) {
// Check if there is no more data
if (value.length < MConfig.pageLimit) {
result = easy.IndicatorResult.noMore;
}
}
mPageState.error.value = false;
}
} catch (e, s) {
mLogger.e('message::$e, stack::${s.toString()}');
mPageState.error.value = true;
} finally {
mPageState.isLoading.value = false;
}
if (easyRefreshController != null) {
if (mPageState.goPage > 1) {
easyRefreshController.finishLoad(result, true);
} else if (mPageState.goPage <= 1) {
easyRefreshController.finishRefresh(result, true);
easyRefreshController.resetFooter();
}
}
return result;
}