我正在尝试了解依赖注入(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/