BlocProvider<B extends BlocBase<S> , S>.scoped constructor
BlocProvider<B extends BlocBase<S> , S>.scoped (
- String name
Creates a BlocProvider that needs to be overridden
With pure dart:
final blocProvider = BlocProvider<CounterBloc, int>.scoped('blocProvider');
final container = ProviderContainer(
overrides: [
blocProvider
.overrideWithProvider(BlocProvider((ref) => CounterBloc(0))),
],
);
final counter = container.read(blocProvider); // counter = 0
With Flutter:
final blocProvider = BlocProvider<CounterBloc, int>.scoped('blocProvider');
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return ProviderScope(
overrides: [
blocProvider
.overrideWithProvider(BlocProvider((ref) => CounterBloc(0))),
],
child: Consumer(
builder: (context, ref, child) {
final counter = ref.watch(blocProvider); // counter = 0
return Text('$counter');
}
)
);
}
}
Implementation
BlocProvider.scoped(String name)
: this(
(ref) => throw UnimplementedProviderError<BlocProvider<B, S>>(name),
name: name,
);