whenData<T> method
void
whenData<T>(
- void data(
- S data
- void loading()?,
- void error()?,
override
Optional pattern matching for async state, focused on data extraction.
data
is called if the state contains data and is required.
loading
is an optional callback for loading state.
error
is an optional callback for error state.
This method is useful when you primarily care about the data and want optional handling for loading and error states. All callbacks are void functions.
Example:
state.whenData(
data: (data) => print('Data: $data'),
loading: () => print('Loading...'),
error: (error) => print('Error: ${error.message}'),
);
Implementation
@override
void whenData<T>(
void Function(S data) data, {
void Function()? loading,
void Function(ErrorState e)? error,
}) {
switch (_status) {
case AsyncStatus.loading:
return loading?.call();
case AsyncStatus.error:
return error?.call(errorState!);
case AsyncStatus.data:
return data(this.data as S);
}
}