Flutter 我如何倾听我的集团流中的变化
我是个新手,正在尝试使用Bloc架构构建一个应用程序 我可以通过输入我的eventFlutter 我如何倾听我的集团流中的变化,flutter,bloc,stream-builder,Flutter,Bloc,Stream Builder,我是个新手,正在尝试使用Bloc架构构建一个应用程序 我可以通过输入我的eventbloc.updateNavigation(_selectedItem.value)找到一个接收器。我还通过调用我的bloc(就是它的名称)了解了如何使用这些数据。我有一个TextFormField并更改了一些设置,如if(bloc.navigationProvider.currentNavigation==1),if(bloc.navigationProvider.currentNavigation==2) 但有
bloc.updateNavigation(_selectedItem.value)找到一个接收器代码>。我还通过调用我的bloc(就是它的名称)了解了如何使用这些数据。我有一个TextFormField并更改了一些设置,如if(bloc.navigationProvider.currentNavigation==1)
,if(bloc.navigationProvider.currentNavigation==2)
但有一件事我不知道该怎么做。我想设置\u Controller.clear()代码>无论何时集团发生变化。因此,每当用户做出新选择并更改“currentNavigation”时,文本控制器就会清除。有没有一种方法可以让我知道什么时候进行了更改,而不必通过更改来调用。如果(对currentNavigation进行了更改){u Controller.clear();}
我的bloc文件如下所示:
class NavigationBloc {
final navigationController = StreamController();
NavigationProvider navigationProvider = new NavigationProvider();
Stream get getNavigation => navigationController.stream;
void updateNavigation(int navigation) {
navigationProvider.updateNavigation(navigation);
navigationController.sink.add(navigationProvider.currentNavigation);
}
void dispose() {
navigationController.close();
}
}
final bloc = NavigationBloc();
流有一个
.listen(..)
方法,每次数据传入流时都会调用该方法
为了更好地使用,请使用该软件包。它提供了向所有子体提供一个bloc的小部件(BlocProvider)和侦听状态更改的小部件(BlocListener)。在这里,您根本不必处理流,还有一些插件可以帮助创建样板代码。问题是,我实际上对传递到流中的数据不感兴趣,而只是对传递到流中的数据感兴趣。我不需要这些数据,我只想说,在传递数据时,清除控制器。Flatter_bloc软件包看起来很有趣,可能是处理我一直在处理的问题的更好方法,但目前看来,更新我所有的bloc以使用该包似乎仍然是一项艰巨的任务。您可以忽略listen方法中的数据并将其清除:)没有单独的方法在每次更新流时触发