State
Riverpod providers and state management for E-Core
State Management
The State package provides reactive state management built on Riverpod.
Overview
e_core_state offers:
- Base Providers - Pre-configured provider patterns
- Async Notifiers - Async state handling with loading/error states
- State Utilities - Helper extensions for common patterns
Installation
dependencies:
e_core_state: ^1.0.0Key Patterns
Async State Notifier
Handle async operations with built-in loading and error states:
class UsersNotifier extends AsyncNotifier<List<User>> {
@override
Future<List<User>> build() async {
final repo = ref.watch(usersRepositoryProvider);
return repo.getUsers();
}
Future<void> refresh() async {
state = const AsyncLoading();
state = await AsyncValue.guard(() => build());
}
}Provider Patterns
E-Core provides standardized provider patterns:
// Repository provider
final usersRepositoryProvider = Provider<UsersRepository>((ref) {
return UsersRepositoryImpl(ref.watch(apiClientProvider));
});
// State provider
final usersProvider = AsyncNotifierProvider<UsersNotifier, List<User>>(() {
return UsersNotifier();
});