使用BLoC模式,最好如何处理不会引起状态更改的事件(例如日志)?

时间:2020-11-09 10:46:42

标签: flutter bloc

我有(简化)2个块,其中一个对应用程序是全局的,位于窗口小部件树的顶部(用户管理),一个对那个树中的页面(UI管理)。现在,我想根据用户输入从pageBloc更新userBloc中的数据,这不会影响任何直接呈现(直接)。

我知道方法

if (userBloc.state is AppSettled)
      myPageUserVar = (userBloc.state as AppSettled).myUserVar;

获取数据,我知道如何通过触发事件获取数据。但是,我不知道如何处理事件而不必在上级userBloc中释放状态更改。有人有想法吗?

我可以在没有任何yield语句的情况下简单地向mapEventToState添加一个条件,还是会引起任何问题(示例中从未出现过类似的情况)

1 个答案:

答案 0 :(得分:1)

您可以通过依赖项注入将一个集团提供给另一个集团,例如:

 Set "MyFile=VMs.txt"
 rem VMs.txt contains IPs of the machines

 for /f "usebackq delims=" %%a in ("%MyFile%") do call :compare
 goto :EOF

 :compare
 for %%j in (.) do for /f "tokens=2 delims==" %%i in ('wmic /node:"%%a" path Win32_VideoController get CurrentVerticalResolution /value ^| find "="') do set "height=%%i"
 echo(%height%

此处的更多信息:bloc-to-bloc-communication

另一种方法是监听class PageBloc extends Bloc { final UserBloc userBloc; StreamSubscription userBlocSubscription; MyBloc(this.userBloc) { userBlocSubscription = userBloc.listen((state) { // React to state changes here. // Add events here to trigger changes in PageBloc. }); } @override Future<void> close() { userBlocSubscription .cancel(); return super.close(); } } 中的状态变化,并像这样通知您的pageBloc

userBloc