GetIt/Injectable 在抽象类上缺少可注入装饰器?

Posted

技术标签:

【中文标题】GetIt/Injectable 在抽象类上缺少可注入装饰器?【英文标题】:GetIt/Injectable missing injectable decorator on abstract class? 【发布时间】:2021-07-03 05:09:59 【问题描述】:

我正在使用GetIt 和Injectable,但我在使用 GetIt 时遇到了一些问题。

似乎我没有注册我的DiscordRepository 类,但我不能用@injectable 装饰器注册它,因为它是一个抽象类。 这种情况我该怎么办?

我这样初始化我的依赖注入:


final getFromDependencyGraph = GetIt.instance;

@injectableInit
Future<void> setupDependencyInjection() async 
  await $initGetIt(getFromDependencyGraph);


flutter pub run build_runner build 给我这个输出:

[WARNING] injectable_generator:injectable_config_builder on lib/misc/dependencies.dart:
Missing dependencies in discordlogin/misc/dependencies.dart

[AuthenticationService] depends on unregistered type [DiscordRepository] from package:discordlogin/data/repository/discord_repository.dart

Did you forget to annotate the above class(s) or their implementation with @injectable?

我的完整代码在这里:https://github.com/BLKKKBVSIK/DiscordLogin 为网络构建它。然后启动应用并点击屏幕右下角的FAB以查看应用中的错误。

【问题讨论】:

我也有类似的问题,你解决了吗? 嗨!我仍然没有,但自从我切换项目以来我没有深入研究这个问题!如果你找到了解决办法,你能把它寄到这里吗?将不胜感激。 你有没有找到任何独奏? @DuyNguyen 我没有 【参考方案1】:

对我来说,在颤振 2.0 之后,该项目是一个由一些插件自动更改为 null-safety 的问题,它提供了不必要的字段,即 null-safety(?),在我清理之后警告消失了

【讨论】:

以上是关于GetIt/Injectable 在抽象类上缺少可注入装饰器?的主要内容,如果未能解决你的问题,请参考以下文章

在实体框架中的抽象类上配置自动增量字段

使用 PHPUnit 测试受保护方法的最佳实践(在抽象类上)

如何从 iOS Swift Codable 中的 API 响应通知或打印模型类上缺少的密钥?

抽象类上的 Json.reads(不支持密封特征:没有已知的子类)

获取抽象超类上泛型类型参数的实际类型

蓝牙与 Android 上的 Qt。通过抽象类上的jni调用java类