API Flutter

ProviderScope can own a container ou receive one externally. Consumer APIs keep WidgetRef access compatible avec Riverpod-style code.

ProviderScope Ownership

Container ownership changes disposal responsibility.

Internal container

ProviderScope(child: ...) disposes automatically

External container

ProviderScope(container: c, ...) requires c.dispose() by caller

Uncontrolled scope

UncontrolledProviderScope never disposes the container

Common pitfall

dans widget tests, remember ? dispose externally injected ProviderContainer ? avoid pending timer leaks.

Consumer Variants

All options expose WidgetRef; choose by widget style et local state needs.

application root

runApp(const ProviderScope(child: MyApp()));

When ? use each

Consumer: local builder block for small reactive areas.
ConsumerWidget: stateless widget with build(context, ref).
ConsumerStatefulWidget: stateful widget with ref inside ConsumerState.

exemple: ConsumerStatefulWidget

Use ConsumerState when you need both WidgetRef et local mutable UI state.

home_page.dart
class HomePage extends ConsumerStatefulWidget {
  const HomePage({super.key});

  @override
  ConsumerState<HomePage> createState() => _HomePageState();
}

class _HomePageState extends ConsumerState<HomePage> {
  bool expanded = false;

  @override
  Widget build(BuildContext context) {
    final user = ref.watch(currentUser);
    return Column(
      children: [
        Text('$user'),
        Switch(
          value: expanded,
          onChanged: (v) => setState(() => expanded = v),
        ),
      ],
    );
  }
}
Consumer internals schedule rebuilds ? post-frame, reducing setState-during-build issues.
Use WidgetRef.watch uniquement pour values that should trigger rebuilds.
Keep side effects outside build; use callbacks et invoke/refresh methods.

?tapes suivantes

Testing

Validate container lifecycle, overrides, et async updates dans unit et widget tests.

Open tests

API R?f?rence

See signatures pour ProviderScope, WidgetRef, et container methods.

Open API R?f?rence