是否可以在flutter应用程序加载时执行事件,而不是像onPressed那样等待用户输入?

laawzig2  于 2023-01-06  发布在  Flutter
关注(0)|答案(1)|浏览(143)

我有一个mixin,它将向riverpod提供程序添加文件(这可能不相关)并根据文件类型设置一些其他提供程序。mixin函数是从几个地方调用的,这取决于文件是如何输入的,比如文件拾取器或文件拖入窗口。这工作得很好,但现在我正试图实现在应用程序启动时添加文件的功能。因此,如果用户从应用的资源管理器中打开一个关联的文件类型,或者如果他们选择文件并选择open with...(在Windows中),我将在void main(List<String> arguments) {}中获得一个文件列表。我的问题是,我不知道何时何地可以将这些文件传递给负责向StateNotifier添加文件的现有mixin。
我曾想过在应用程序启动时尝试将这些文件传递给ref.read()中的状态通知程序,但1)我不知道这是否可行,2)如果可行,我将复制此特定任务的混合代码,而宁愿坚持使用混合代码。
有没有一种方法可以“强制”调用mixin的函数,而不必等待用户事件(如按下按钮)?

watbbzwu

watbbzwu1#

添加mixin的最佳位置是在providerinitialization期间。
示例:

final sampleNotifierProvider = StateNotifierProvider(
  (ref) => SampleNotifier(ref.watch(sampleRepositoryProvider)),
);

class SampleNotifier extends StateNotifier<WeatherState> {
  final SampleRepository _sampleRepository;

  SampleNotifier(this._sampleRepository) : super(SampleInitial()){
    //  <mixin> 👈 Add your mixin here
  }
}

相关问题