flutter_multi_module_di 1.0.0 copy "flutter_multi_module_di: ^1.0.0" to clipboard
flutter_multi_module_di: ^1.0.0 copied to clipboard

outdated

A simple and modular dependency injection system for Flutter.

Flutter multi module dependency injection #

Installation #

In the dependencies: section of your pubspec.yaml, add the following line:

dependencies:
    flutter_multi_module_di: latest_version

Usage #

class MainPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChildInjectorWidget(
      childModule: MainModule(context),
      injectorBuilder: (i) {
        final widget = _MainWidget(i.get(), i.get(name: "test_1"));

        return BlocProvider(
          create: (BuildContext context) => i.get<MainBloc>()..add(MainPageOpenedEvent()),
          child: widget,
        );
      },
    );
  }
}

class _MainWidget extends StatelessWidget {
  final MainBloc _bloc;
  final String _testSrt;

  _MainWidget(this._bloc, this._testSrt);

  @override
  Widget build(BuildContext context) {
   ...
  }
}

You can also extend BindingInjectorWidget to configure your dependencies:

class MyBinder extends ModuleWidget {
  MyBinder({Key key, @required Widget child}): super(key: key, child: child);
  @override
  void configure(Binder binder) {
    binder
      ..bindSingleton(Object());
  }
}

You can later refer to the injector like any other InheritedWidget.

class SomeWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final injector = InjectorWidget.of(context);
    final apiKey = injector.get(name: "api_key");
    return SomeContainerNeedingTheKey(apiKey);
  }
}

Or using the InjectorWidgetMixin:

class SomeWidget extends StatelessWidget with InjectorWidgetMixin {
  @override
  Widget buildWithInjector(BuildContext context, Injector injector) {
    final object = injector.get<Object>();
    print(object);
    return Container();
  }
}
5
likes
0
pub points
0%
popularity

Publisher

verified publishercilestal.com

A simple and modular dependency injection system for Flutter.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

disposables, flutter, quiver

More

Packages that depend on flutter_multi_module_di