flutter_bloc 8 : what is the best practice for listening to state changes from another bloc

标签 flutter bloc flutter-bloc

倾听另一个 Bloc 状态变化的最佳实践是什么?

这个答案在以前的版本中是相关的,但在版本 8 中不起作用(.listen 方法在 block 上不再存在):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 中监听另一个 block 的状态变化的推荐方法是什么?

最佳答案

状态流现在通过 stream getter 公开,因此您仍然可以使用几乎相同的代码:

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

关于flutter_bloc 8 : what is the best practice for listening to state changes from another bloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72085170/

相关文章:

Flutter 事件在流中丢失

flutter - 无法在 Flutter 的 showModal 上下文中访问 bloc

Flutter:如果存在则获取提供者,否则返回 null 而不是异常

android - 位置参数必须出现在命名参数之前,并且 flutter 上的位置参数太多

flutter - Dart Provider:在直子上不可用

android - 无法从 Bloc Flutter 中听到新的值(value)

flutter - 在 flutter 中从 Navigator.pushNamed 访问 block

database - 必须初始化不可为 null 的实例字段 'id',必须初始化不可为 null 的实例字段 '_database'。 flutter 中

flutter - 错误:无法将参数类型 'Context'分配给参数类型 'BuildContext'

flutter - 使用无状态小部件创建简单的随机化器时出错。实例成员无法在初始化程序中访问