使用寄存器工厂时 Bloc 状态变量是否持续存在?

问题描述 投票:0回答:1

我正在使用 Bloc 的依赖注入。当我初始化我的 Bloc 时,我调用:

getIt.registerFactory<RemoteGroceryItemsBloc>(
      () => RemoteGroceryItemsBloc(getIt(),getIt())); 

我基本上:

  1. 调用服务来下拉数据列表(getIt()..add(event #1).

  2. 调用另一个服务将新项目保存到我刚刚下载的列表中(getIt()..add(event #2).

  3. 然后将#1 中的列表附加到#2 中的新项目

  4. 问题是我需要保留步骤#1中的列表,以便我可以将其附加到步骤#2

  5. 因此,我将列表保留在我的状态类中,并将其传递给步骤 #2 的用例(我这样做是因为我不想在 UI 中附加逻辑 - 只是想将新的附加列表传递回 UI)

我的问题是,如果我为 Bloc 使用工厂类(每次调用时创建的新实例),那么第二个调用(( getIt()..add(event #2))如何能够访问步骤 # 中的原始列表1.我是不是漏掉了什么?

flutter dart state factory bloc
1个回答
0
投票

是的,如果使用registerFactory类状态变量将不会持久。我将 Bloc 声明切换为 registerSingleton,然后我的状态变量当然会保留下来。不确定这是否是不好的做法,但也不确定解决方法。

© www.soinside.com 2019 - 2024. All rights reserved.