buildProvider method

  1. @protected
Widget buildProvider(
  1. BuildContext context,
  2. Widget? child, {
  3. ViewModelWidgetBuilder<VM>? builder,
})

Implementation

@protected
Widget buildProvider(
  BuildContext context,
  Widget? child, {
  ViewModelWidgetBuilder<VM>? builder,
}) {
  /// 混入 [ChildViewModelProviderLifecycleMixin] 不再 Provider 注册生命周期
  final _lifecycle = this is! ViewModelProviderLifecycleMixin<VM>
      ? this.asSafeType<ViewModelProviderLifecycle<VM>>()
      : null;

  final _builder = this.asSafeType<ViewModelProviderBuilder<VM>>();

  return ValueViewModelProvider(
    create: create,
    initViewModel: _lifecycle?.initViewModel,
    initFrame: _lifecycle?.initFrame,
    bindViewModel: _lifecycle?.bindViewModel,
    disposeViewModel: _lifecycle?.disposeViewModel,
    changeViewModel: _lifecycle?.changeViewModel,
    child: child,
    builder: builder ?? _builder?.buildChild,
  );
}