信息:“runZoned”已弃用,不应使用。这将在 v9.0.0 中删除。使用 Bloc.Bloc.transformer 代替

Swe*_*ain 11 flutter bloc flutter-bloc

我在尝试在 DartPad 上运行代码时遇到此问题。

'runZoned' is deprecated and shouldn't be used. This will be removed in v9.0.0. Use Bloc.Bloc.transformer instead...
Run Code Online (Sandbox Code Playgroud)

正确的更换方法是什么?

代码:

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

void main() {
  BlocOverrides.runZoned(
    () => runApp(const App()),
    blocObserver: AppBlocObserver(),
  );
}

/// Custom [BlocObserver] that observes all bloc and cubit state changes.
class AppBlocObserver extends BlocObserver {
  @override
  void onChange(BlocBase bloc, Change change) {
    super.onChange(bloc, change);
    if (bloc is Cubit) print(change);
  }

  @override
  void onTransition(Bloc bloc, Transition transition) {
    super.onTransition(bloc, transition);
    print(transition);
  }
}
Run Code Online (Sandbox Code Playgroud)

Swe*_*ain 27

解决方案是:

void main() {
  Bloc.observer = AppBlocObserver();
  runApp(const App());
}
Run Code Online (Sandbox Code Playgroud)