Ale*_*kas 7 dependency-injection injectable dart flutter
我有类似的东西:
@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)
小智 0
代码按预期工作
print(getIt<SettingsBloc>().event);
// prints null
print(getIt<SettingsBloc>(param1: Event()).event);
// prints Instance of 'Event'
Run Code Online (Sandbox Code Playgroud)
您确定在使用 getIt 之前初始化它吗?
| 归档时间: |
|
| 查看次数: |
1456 次 |
| 最近记录: |