Skrifaflæðið er áfram skýrt.

Skilgreindu breytingar sem provider aðferðir, fylgstu með stöðu með MutationToken og keyrðu þær með ref.invoke(call).

Byggingarkubbar breytinga

Breyting er Call<R, State> sem mutate(token, body, concurrency: ...) skilar.

Token

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

Execution

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

State

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

Athugið

Ólíkt notifier.method()-stíl API gerir miniriverpod keyrslu breytinga að fyrsta flokks call object.

Keyra breytingu

Notaðu ref.invoke þannig að afpöntunar- og drop hegðun sjáist fyrir kallaðila.

Keyra

Samhæfnisvalkostir

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.

Dæmi: bjartsýn uppfærsla + restart

Algengt skrifmynstur uppfærir AsyncData bjartsýnislega og samstillir síðan við svar frá þjóninum.

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 getur kastað CancelledMutation til eldri kallaða.
dropLatest getur kastað DroppedMutation meðan eitthvað er upptekið.
Gríptu þau í UI þegar þú vilt fela tímabundnar afpöntunarvillur.

Næstu skref

Flutter API

Tengdu stöðu breytingar við UI með ConsumerWidget eða ConsumerStatefulWidget.

Opna Flutter API

API Reference

Farðu fljótt yfir invoke, mutation, mutate og MutationState gerðirnar.

Opna API Reference