小编Ale*_*kas的帖子

有没有办法传递工厂参数?

我有类似的东西:

@injectable
class SettingsBloc {
  final Event event;

  SettingsBloc(@factoryParam this.event);
}
Run Code Online (Sandbox Code Playgroud)

当我从代码中调用它时,我传递工厂参数,例如:getIt<SettingsBloc>(param1: Event())

但是,当 SettingsBloc 是某些东西的依赖项时,调用是自动生成的,如下所示:get<SettingsBloc>()

生成的代码:

gh.factoryParam<SettingsBloc, Event, dynamic>(
      (event, _) => SettingsBloc(event));

gh.factoryParam<HotelsBloc, Event, dynamic>(
      (event, _) => HotelsBloc(
            event,
            get<SettingsBloc>(),
          ));
Run Code Online (Sandbox Code Playgroud)

因此,工厂参数未传递,并且所有内容都会在运行时崩溃。我怎样才能解决这个问题?

PS 长话短说:应该有一种方法来生成此代码:

gh.factoryParam<HotelsBloc, Event, dynamic>(
          (event, _) => HotelsBloc(
                event,
                get<SettingsBloc>(param1: event),
              ));
Run Code Online (Sandbox Code Playgroud)

而不是这个:

gh.factoryParam<HotelsBloc, Event, dynamic>(
          (event, _) => HotelsBloc(
                event,
                get<SettingsBloc>(),
              ));
Run Code Online (Sandbox Code Playgroud)

dependency-injection injectable dart flutter

7
推荐指数
1
解决办法
1456
查看次数

标签 统计

dart ×1

dependency-injection ×1

flutter ×1

injectable ×1