flutter_bloc 8:从另一个块中侦听状态变化的最佳实践是什么?



倾听另一个集团的状态变化的最佳做法是什么?

这个答案在以前的版本中是相关的,但在版本8中不起作用(.listen方法不再存在于一个块上):https://stackoverflow.com/a/62785980/160919

FilteredTodosBloc({@required this.todosBloc}) {
todosSubscription = todosBloc.listen((state) {
if (state is TodosLoadSuccess) {
add(TodosUpdated((todosBloc.state as TodosLoadSuccess).todos));
}
});}

在flutter_bloc 8中,建议使用什么方法来侦听来自另一个块的状态变化?

状态流现在通过streamgetter暴露,所以你仍然可以使用几乎相同的代码:

FilteredTodosBloc({required this.todosBloc}) {
todosSubscription = todosBloc.stream.listen((state) {
if (state is TodosLoadSuccess) {
add(TodosUpdated((todosBloc.state as TodosLoadSuccess).todos));
}
});}

在推荐的方法方面没有什么变化。你所要做的就是先调用stream属性,然后听它,而不是直接听它。如果你之前听过这样的blocks/腕尺:myBloc.listen((state) => print(state));

所有你需要改变的是先调用stream,像这样:

myBloc.stream.listen((state) => print(state));

最新更新