selectData<Selected> method
AsyncValue<Selected>
selectData<Selected>(
- Selected selector(
- T data
Позволяет выбирать часть из состояния провайдера, похож на AsyncValue.whenData, но поддерживает skipLoadingOnReload, skipLoadingOnRefresh и skipError
Implementation
AsyncValue<Selected> selectData<Selected>(
Selected Function(T data) selector,
) {
return when<AsyncValue<Selected>>(
data: (data) {
final asyncData = AsyncData(selector(data));
if (isLoading) {
return AsyncLoading<Selected>().copyWithPrevious(asyncData);
}
return asyncData;
},
error: (e, s) {
final asyncError = AsyncError<Selected>(e, s);
if (hasValue) {
return asyncError.copyWithPrevious(
AsyncData(selector(value as T)),
isRefresh: false,
);
}
return asyncError;
},
loading: () {
final asyncLoading = AsyncLoading<Selected>();
if (hasValue) {
return asyncLoading.copyWithPrevious(
AsyncData(selector(value as T)),
isRefresh: false,
);
}
return asyncLoading;
},
);
}