错误状态:GetIt:类型为 LoginViewModel 的对象/工厂未在 GetIt 内注册

问题描述 投票:0回答:2

错误状态:GetIt:类型为 LoginViewModel 的对象/工厂未在 GetIt 内注册。 (您是否不小心执行了 GetIt sl=GetIt.instance(); 而不是 GetIt sl=GetIt.instance; 您忘记注册了吗?) //这是我得到的错误

screenshot of that

one more screenshot

我不明白这个错误是什么意思。请解释一下

这里是 GIT 存储库链接:https://github.com/soam1/Tut-app-Flutter.git

flutter dart flutter-dependencies flutter-animation
2个回答
0
投票

如果没有看到更多,很难知道你需要什么帮助。

但是,请查看 this repo 以了解使用 get_it 的简单依赖注入应该如何工作。

具体来说,请查看 依赖注入 文件以及我如何从 main 设置它。

我认为您没有正确执行此存储库的依赖项注入文件中显示的操作。


0
投票

我看不清你的代码。

但是,有一个提示给您。事实证明该代码顺序很重要。例如如下

如果您有一个依赖于 Helper 类的 DataSource 类,并且您这样放置

// Line 9
getIt.registerLazySingleton<DataSource>(() => DataSource(getIt()));
// Line 10
getIt.registerLazySingleton<Helper>(() => Helper(getIt()));

那么就有可能会出现这个错误

你要做的就是把其他类需要的类放在前面

// Line 9
getIt.registerLazySingleton<Helper>(() => Helper(getIt()));
// Line 10
getIt.registerLazySingleton<DataSource>(() => DataSource(getIt()));

希望可以解决您的问题

© www.soinside.com 2019 - 2024. All rights reserved.