flutter 无法在块更新后使用块观察程序

xv8emn3q  于 2023-01-09  发布在  Flutter
关注(0)|答案(3)|浏览(118)

我在上一次更新bloc 8.0.1时遇到了一个问题,我无法使用bloc观察器,我使用了BlocOverrides,但仍然无法工作,下面是我的代码
my main class code
第一个月

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}');
  }
}
wribegjk

wribegjk1#

我要用下一个密码。

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

你可以在flutter包的例子中看到它。我和你有同样的问题,但是有了这个改变,一切又都正常了。

gfttwv5a

gfttwv5a2#

另一个答案是已弃用已更新解决方案是:

void main() {
  Bloc.observer = MyBlocObserver();
  runApp(const App());
}
cqoc49vn

cqoc49vn3#

我认为你的问题在于依赖性,使用

flutter_bloc: ^8.0.1

并将其打包导入main和MyBlocObserver类

import 'package:flutter_bloc/flutter_bloc.dart';

这对我很有效。这是我使用click的一个小项目

相关问题