maybeWhen<R> method
R
maybeWhen<R>({
- R data(
- T data
- R loading()?,
- R error(
- Object error,
- StackTrace stackTrace
- required R orElse(),
- bool skipLoading = true,
- bool skipError = false,
Syntactic sugar for AsyncValue.
final futureState = ref.watch(futureProvider); futureState.maybeWhen( data: (data) => Text(data), orElse: () => const CircularProgressIndicator(), );
Implementation
R maybeWhen<R>({
R Function(T data)? data,
R Function()? loading,
R Function(Object error, StackTrace stackTrace)? error,
required R Function() orElse,
bool skipLoading = true,
bool skipError = false,
}) {
return switch (this) {
AsyncData<T> curr => data != null ? data(curr.data) : orElse(),
AsyncLoading<T> curr => switch (curr.data) {
T t when skipLoading => data != null ? data(t) : orElse(),
_ => loading != null ? loading() : orElse(),
},
AsyncError<T> curr => switch (curr.data) {
T t when skipError => data != null ? data(t) : orElse(),
_ => error != null ? error(curr.error, curr.stackTrace) : orElse(),
},
};
}