Mtiririko wa kuandika unabaki wazi.

Fafanua mabadiliko kama mbinu za provider, fuatilia state kwa MutationToken, na tekeleza kupitia ref.invoke(call).

Vizuizi vya mabadiliko

Mabadiliko ni Call<R, State> inayorudishwa na mutate(token, body, concurrency: ...).

Token

late final renameMut = mutation<void>(#rename)

Execution

await ref.invoke(provider.rename(...))

State

Idle / Pending / Success / Error via ref.watch(token)

Kumbuka

Tofauti na API za aina notifier.method(), miniriverpod hufanya utekelezaji wa mabadiliko kuwa call object ya daraja la kwanza.

Tekeleza mabadiliko

Tumia ref.invoke ili tabia za kughairi na kuacha zionekane kwa caller.

Endesha

Chaguzi za concurrency

concurrent : run all calls in parallel (default).
queue      : FIFO; keep running queued calls even after an error.
restart    : cancel previous run, keep only latest call.
dropLatest : drop incoming calls while one is running.

Mfano: sasisho la matumaini + restart

Mfumo wa kawaida wa kuandika husasisha AsyncData kwa njia ya matumaini, kisha husawazisha na majibu ya seva.

class UserProvider extends AsyncProvider<User?> {
  UserProvider() : super.args(null);

  late final renameMut = mutation<void>(#rename);

  Call<void, AsyncValue<User?>> rename(String newName) => mutate(
    renameMut,
    (ref) async {
      final cur = ref.watch(this).valueOrNull;
      ref.state = AsyncData((cur ?? const User()).copyWith(name: newName), isRefreshing: true);

      final api = ref.watch(apiProvider);
      await api.rename(newName);
      ref.state = AsyncData(await api.me());
    },
    concurrency: Concurrency.restart,
  );
}
restart inaweza kutupa CancelledMutation kwa wanaopiga simu wa zamani.
dropLatest inaweza kutupa DroppedMutation wakati imechoka.
Zishike kwenye UI unapotaka kukandamiza makosa ya muda ya kughairi.

Hatua zinazofuata

Flutter API

Funga state ya mabadiliko kwenye UI kwa kutumia ConsumerWidget au ConsumerStatefulWidget.

Fungua Flutter API

API Reference

Kagua haraka aina za invoke, mutation, mutate, na MutationState.

Fungua API Reference