在我的应用程序根小部件中,我使用Provider
库-MultiProvider
小部件提供了多个服务。
我使用flutter_native_splash
和removeAfter
功能,所以我需要在main
功能中初始化一些服务,而不是在根应用程序小部件中初始化。这意味着我需要找到一种初始化服务的方法;提供";它们没有CCD_ 6小部件,并且稍后使用CCD_。
有什么办法做到这一点吗?
"注入"服务是什么意思?Flutter中没有依赖项注入。如果已有ChangeNotifier
实例,则可以使用value
构造函数。请参阅重用现有对象实例
然而,你不应该在视图模型中真正拥有业务逻辑,imo。你应该拥有独立的服务,并使用像GetIt这样的库来管理它们的实例生存期。
您可以创建一个Signleton
类,并在应用程序中的任何地方使用它,比如
Class Example{
Example._();
static final Example instance = Example._();
Future<void> init () async {
//initialise whatever you want
}
}
并像这样在你的主屏幕上使用它,
void main()async{
await Example.instance.init();
}