我有类似的东西:
@injectable
class SettingsBloc {
final Event event;
SettingsBloc(@factoryParam this.event);
}
当我从代码中调用它时,我传递如下工厂参数:第一个月
但是当SettingsBloc是某个对象的依赖项时,call是自动生成的,如下所示:get<SettingsBloc>()
生成代码:
gh.factoryParam<SettingsBloc, Event, dynamic>(
(event, _) => SettingsBloc(event));
gh.factoryParam<HotelsBloc, Event, dynamic>(
(event, _) => HotelsBloc(
event,
get<SettingsBloc>(),
));
所以,工厂参数没有被传递,所有的东西都在运行时崩溃。我该如何修复这个问题?
附注:长话短说:应该有一种方法来生成这个代码:
gh.factoryParam<HotelsBloc, Event, dynamic>(
(event, _) => HotelsBloc(
event,
get<SettingsBloc>(param1: event),
));
而不是这个:
gh.factoryParam<HotelsBloc, Event, dynamic>(
(event, _) => HotelsBloc(
event,
get<SettingsBloc>(),
));
2条答案
按热度按时间qxgroojn1#
代码按预期工作
您确定要在使用getIt之前对其进行初始化吗?
643ylb082#
根据我对向内部依赖项传递参数的理解,您应该为依赖SettingsBloc的类创建一个Module。
此外,您必须从HotelsBloc中删除@injectable,因为模块现在处理HotelsBloc的创建。
文件:Module class|lib documentation