dependencies_flutter 0.0.4 dependencies_flutter: ^0.0.4 copied to clipboard
A simple and modular dependency injection system without using reflection.
Simple package ease the use of the dependencies with Flutter
leveraging the power of InheritedWidget
.
Usage #
class SomeRootWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return InjectorWidget.bind(
binderFunc: (binder) {
binder
..install(MyModule())
..bindSingleton("api123", name: "api_key");
},
child: SomeWidget()
);
}
}
Alternatively you can build the injector using the InjectorBuilder
and pass
it in like this:
class SomeRootWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return InjectorWidget(
injector: injector,
child: SomeWidget()
);
}
}
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();
}
}