flutter - 带参数的类的 Dart 依赖注入(inject)

标签 flutter dart dependency-injection

我正在尝试了解依赖注入(inject)并尝试在 Flutter/Dart 中使用它.我浏览了图书馆get_it我觉得这非常有用。

但我对特定情况下的依赖注入(inject)存有疑问。

如果我有一个带有类似参数的 Dart 类,例如:

class MyClass(){
    final String name;

    MyClass({this.name})

    ....
    ....
}

在这样一个带有参数的类中,似乎我不能使用依赖注入(inject)?或至少以下使用 get_it不管用:

**** service_locator.dart ****
import 'package:get_it/get_it.dart';

GetIt locator = GetIt();

void setupLocator() {
  locator.registerLazySingleton<MyClass>(() => MyClass());
}

这会在 => MyClass() 上产生错误....因为它需要一个参数。

这种注入(inject)怎么做?

最佳答案

您只需将想要的参数传递给 MyClass() .您不必在 setUpLocator() 内部进行操作.当您知道要传递什么参数时,在程序中的任何位置注册单例。

例如,如果您需要将用户对象注册为单例,则必须在用户登录并且他们的所有信息都可用后才能正确实例化您的 User。类(class)。

关于flutter - 带参数的类的 Dart 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57973177/

相关文章:

dependency-injection - angular2 中服务的生命周期方法

flutter - 如何在PageView中的页面之间留出一些空间(边距/填充)?

windows - SQLite 错误参数或其他 API 误用

flutter - 如何修复此可忽略的小部件边框

error-handling - 无法在 flutter 控制台中执行 flutter 医生命令

java - 带有命令模式的 spring beans 映射

java - Spring 多个类的依赖注入(inject)

flutter - 如何在 CustomPainter 的绘画功能中获取 Canvas 的偏移量?

android - Flutter:带有 StreamBuilder 的 FirebaseAuth (v1.2.0) 无法在 Flutter Web 中进行热重载

windows - 重命名项:拒绝访问路径(Flutter升级)