如何解决使用BLoC模式,最好如何处理不会引起状态更改的事件例如日志?
我有(简化)2个块,其中一个对应用程序是全局的,位于窗口小部件树的顶部(用户管理),一个对那个树中的页面(UI管理)。现在,我想根据用户输入从pageBloc更新userBloc中的数据,这不会影响任何直接呈现(直接)。
我知道方法
if (userBloc.state is AppSettled)
myPageUserVar = (userBloc.state as AppSettled).myUserVar;
获取数据,我知道如何通过触发事件获取数据。但是,我不知道如何处理事件而不必在上级userBloc中释放状态更改。有人有想法吗?
我可以在没有任何yield语句的情况下简单地向mapEventToState
添加一个条件,还是会引起任何问题(示例中从未出现过类似的情况)
解决方法
您可以通过依赖项注入将一个集团提供给另一个集团,例如:
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。