prefer-multi-bloc-provider

Group
Style
Path
lint/style/prefer-multi-bloc-provider
Default
Off, opt in
Origin
Falcon
Domain
bloc
Rule
387 of 512
bloc

Flatten directly nested package:flutter_bloc BlocProviders with MultiBlocProvider.

Invalid

example.dartdart
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_bloc/flutter_bloc.dart' as fb;
Object example() {
  final p0 = BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
  final p1 = new BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
  final p2 = fb.BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
  final p3 = BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
  final p4 = BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
  return p0;
}
Combine nested `BlocProvider` widgets with `MultiBlocProvider`.
3Object example() {
4 final p0 = BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
Combine nested `BlocProvider` widgets with `MultiBlocProvider`.
4 final p0 = BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
5 final p1 = new BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
Combine nested `BlocProvider` widgets with `MultiBlocProvider`.
5 final p1 = new BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
6 final p2 = fb.BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
Combine nested `BlocProvider` widgets with `MultiBlocProvider`.
6 final p2 = fb.BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
7 final p3 = BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
Combine nested `BlocProvider` widgets with `MultiBlocProvider`.
7 final p3 = BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));
8 final p4 = BlocProvider<int>(create: (_) => 0, child: BlocProvider<int>.value(value: 1, child: 0));

Valid

example.dartdart
import 'package:flutter_bloc/flutter_bloc.dart' as fb;
class BlocProvider { BlocProvider({required Object child}); }
Object example() {
  final single = fb.BlocProvider<int>(create: (_) => 0, child: 0);
  final unrelated = BlocProvider(child: BlocProvider(child: 0));
  final mixed = fb.BlocProvider<int>(create: (_) => 0, child: BlocProvider(child: 0));
  final repositories = fb.RepositoryProvider<int>(create: (_) => 0, child: fb.RepositoryProvider<int>(create: (_) => 0, child: 0));
  final multi = fb.MultiBlocProvider(providers: [fb.BlocProvider<int>(create: (_) => 0, child: 0)], child: single);
  return multi;
}

Configure prefer-multi-bloc-provider

Set its severity in falcon.json. See the configuration guide.

falcon.jsonjson
{
  "linter": {
    "rules": {
      "style": {
        "prefer-multi-bloc-provider": "error"
      }
    }
  }
}

Or silence one occurrence with a suppression comment; the reason is required.

example.dartdart
// falcon-ignore lint/style/prefer-multi-bloc-provider: <reason>