dependencies_flutter 0.0.4 dependencies_flutter: ^0.0.4 copied to clipboard
A simple and modular dependency injection system without using reflection.
import 'package:dependencies_flutter/dependencies_flutter.dart';
import 'package:flutter/material.dart';
import 'package:dependencies/dependencies.dart';
class SomeRootWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return InjectorWidget.bind(
binderFunc: (binder) {
binder
..install(MyModule())
..bindSingleton("api123", name: "api_key");
},
child: Container(
child: Container(
child: SomeWidget(),
)
)
);
}
}
class MyModule extends Module {
@override
void configure(Binder binder) {
binder
..bindSingleton(Object());
}
}
class SomeWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
final injector = InjectorWidget.of(context);
final apiKey = injector.get(name: "api_key");
print(apiKey);
return Container();
}
}
class SomeOtherWidget extends StatelessWidget with InjectorWidgetMixin {
@override
Widget buildWithInjector(BuildContext context, Injector injector) {
final object = injector.get<Object>();
print(object);
return Container();
}
}