when<R> method
- required R loading(),
- required R data(
- T value
- required R onError(
- Object error,
- StackTrace? stackTrace
Maps this state to a value using the provided callbacks.
final widget = state.when(
loading: () => CircularProgressIndicator(),
data: (value) => Text('$value'),
error: (e, st) => Text('Error: $e'),
);
Implementation
R when<R>({
required R Function() loading,
required R Function(T value) data,
required R Function(Object error, StackTrace? stackTrace) onError,
}) {
return switch (this) {
AsyncLoading<T>() => loading(),
AsyncData<T>(:final value) => data(value),
AsyncError<T>(:final error, :final stackTrace) =>
onError(error, stackTrace),
};
}