【问题标题】:can't use bloc observer after bloc update集团更新后无法使用集团观察者
【发布时间】:2021-12-20 15:32:51
【问题描述】:

我在上次更新 bloc 8.0.1 时遇到问题,我无法使用 bloc 观察者,我使用了 BlocOverrides 但仍然无法正常工作,这是我的代码

my main class code

BlocObserver

import 'package:bloc/bloc.dart';

class MyBlocObserver extends BlocObserver {
  @override
  void onCreate(BlocBase bloc) {
    super.onCreate(bloc);
    print('onCreate -- ${bloc.runtimeType}');
  }

  @override
  void onChange(BlocBase bloc, Change change) {
    super.onChange(bloc, change);
    print('onChange -- ${bloc.runtimeType}, $change');
  }

  @override
  void onError(BlocBase bloc, Object error, StackTrace stackTrace) {
    print('onError -- ${bloc.runtimeType}, $error');
    super.onError(bloc, error, stackTrace);
  }

  @override
  void onClose(BlocBase bloc) {
    super.onClose(bloc);
    print('onClose -- ${bloc.runtimeType}');
  }
}

【问题讨论】:

  • 您遇到的错误是什么?
  • 未定义名称“BlocOverrides”。 (文档)尝试将名称更正为已定义的名称,或定义名称
  • 这是我的主类代码i.stack.imgur.com/1EmHb.jpg
  • 我有这个错误 'BlocObserver' 类是抽象的,不能被实例化。静态 BlocObserver 观察者 = BlocObserver();
  • 你导入了 import 'package:bloc/bloc.dart';这个?

标签: flutter bloc flutter-bloc cubit


【解决方案1】:

我正在使用下一个代码。

 BlocOverrides.runZoned(
    () => runApp(const App()),
    blocObserver: AppBlocObserver(),
 );

您可以在颤振包示例中看到它。我遇到了和你一样的问题,但是有了这个改变,一切都恢复正常了。

【讨论】:

    【解决方案2】:

    我认为你的问题是依赖关系,使用

       flutter_bloc: ^8.0.1
    

    并将它的包导入到 main 和 MyBlocObserver 类

    import 'package:flutter_bloc/flutter_bloc.dart';
    

    这对我有用。这是我使用的小项目click

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-01
      • 2021-03-17
      • 2014-08-11
      • 1970-01-01
      • 2020-03-01
      • 2016-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多