ಓದುವ ಮಾರ್ಗಗಳು: watch, read ಮತ್ತು listen.

Provider synchronous state ನೀಡುತ್ತದೆ. AsyncProvider AsyncValue ಅನ್ನು ಮರಳಿಸುತ್ತದೆ ಮತ್ತು ಕಠಿಣ lifecycle handling ಜೊತೆಗೆ Future ಮತ್ತು Stream ಅನ್ನು ಒದಗಿಸಬಹುದು.

Provider ವಿಧಗಳು

data source ಮತ್ತು update frequency ಆಧಾರವಾಗಿ provider type ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿ.

Provider<T>

Synchronous values ಮತ್ತು local derived state

AsyncProvider<T>

Future/Stream-ಚಾಲಿತ ಸ್ಥಿತಿ AsyncValue<T> ಆಗಿ

provider.future

Provider<Future<T>> ಅನ್ನು expose ಮಾಡುವ selector

ಸೂಚನೆ

state network ಅಥವಾ stream ನಿಂದ ಬಂದರೆ, ಮೊದಲು AsyncProvider ಆಯ್ಕೆ ಮಾಡಿ. Provider ಅನ್ನು pure synchronous logicಗಾಗಿ ಉಳಿಸಿ.

ಓದುವ API ಮ್ಯಾಟ್ರಿಕ್ಸ್

build paths ನಲ್ಲಿ watch, one-shot accessಗಾಗಿ read, ಮತ್ತು side effectsಗಾಗಿ listen ಬಳಸಿ.

ಅತ್ಯಂತ ಸಾಮಾನ್ಯ

watch / read / listen

ref.watch(provider)  : subscribe and rebuild when value changes.
ref.read(provider)   : read current snapshot without subscribing.
container.listen(...) : callback-driven updates; optional fireImmediately.

AsyncProvider ಜೊತೆಗೆ Future ಮತ್ತು Stream

ಒಂದು AsyncProvider Future ಅನ್ನು ಮರಳಿಸಬಹುದು ಅಥವಾ ref.emit(stream) ಮೂಲಕ Stream ಅನ್ನು ಜೋಡಿಸಬಹುದು.

final currentUser = AsyncProvider<User>((ref) async {
  final api = ref.watch(apiProvider);
  return api.me();
});

final liveUser = AsyncProvider<User>((ref) {
  final stream = ref.watch(apiProvider).live();
  ref.emit(stream);
  return const User(name: 'Loading...');
}, autoDispose: true, autoDisposeDelay: const Duration(milliseconds: 250));

// Await as Future
final user = await ref.watch(currentUser.future);
ref.emit(stream) rebuild, invalidate ಮತ್ತು dispose ಸಮಯದಲ್ಲಿ ಹಿಂದಿನ subscription ಅನ್ನು ರದ್ದು ಮಾಡುತ್ತದೆ.
AsyncValue ಒಂದು sealed class: AsyncLoading / AsyncData / AsyncError.
switch ಜೊತೆಗಿನ pattern matching loading/error UI ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿರಿಸುತ್ತದೆ.

ಮುಂದಿನ ಹಂತಗಳು

Mutations

write operations ಅನ್ನು provider methods ಗೆ ಸ್ಥಳಾಂತರಿಸಿ ಮತ್ತು ಅವುಗಳನ್ನು ref.invoke ಮೂಲಕ ಚಲಾಯಿಸಿ.

Flutter API ತೆರೆಯಿರಿ

Flutter API

Consumer, ConsumerWidget, ಮತ್ತು ConsumerStatefulWidget ನಡುವೆ ಆಯ್ಕೆ ಮಾಡಿ.

API Reference ತೆರೆಯಿರಿ