FrProvider<VM extends FrViewModel>.container constructor

FrProvider<VM extends FrViewModel>.container({
  1. GetIt? sl,
  2. dynamic onCreated(
    1. BuildContext c,
    2. VM vm
    )?,
  3. Key? key,
  4. Dispose<VM>? dispose,
  5. bool? lazy,
  6. TransitionBuilder? builder,
  7. Widget? child,
})

inject VM from GetIt container to Widget tree.

Implementation

FrProvider.container({
  GetIt? sl,
  this.onCreated,
  super.key,
  Dispose<VM>? dispose,
  super.lazy,
  super.builder,
  super.child,
}) : super(
        create: (c) {
          sl ??= GetIt.I;
          final vm = sl!<VM>();
          onCreated?.call(c, vm);
          return vm;
        },
        dispose: (c, vm) {
          dispose?.call(c, vm);
          vm.dispose();
          try {
            sl ??= GetIt.I;
            sl!.resetLazySingleton<VM>();
          } catch (e) {}
        },
      );