【问题标题】:Info: 'runZoned' is deprecated and shouldn't be used. This will be removed in v9.0.0. Use Bloc.Bloc.transformer instead信息:\'runZoned\' 已弃用,不应使用。这将在 v9.0.0 中删除。改用 Bloc.Bloc.transformer
【发布时间】:2022-09-23 18:55:17
【问题描述】:

我在尝试在 DartPad 上运行我的代码时遇到了这个问题。

\'runZoned\' is deprecated and shouldn\'t be used. This will be removed in v9.0.0. Use Bloc.Bloc.transformer instead...

更换它的正确方法是什么?

代码:

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

    标签: flutter bloc flutter-bloc dartpad bloc-transformer


    【解决方案1】:

    上面的代码虽然看起来无害,但实际上会导致许多难以追踪错误. 由于使用运行分区, 过渡到块覆盖API 导致在扑

    https://github.com/flutter/flutter/issues/96939

    至使固定这个,使用下面的创建方式观察者和变压器由Bloc team 给出

    void main() {
      Bloc.observer = AppBlocObserver();
      Bloc.transformer = customEventTransformer();
    
      // ...
    }
    

    You can read more about bloc on their official website.

    【讨论】:

      【解决方案2】:

      解决方案是:

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

      【讨论】:

        猜你喜欢
        • 2014-04-17
        • 1970-01-01
        • 2017-05-25
        • 1970-01-01
        • 2020-10-30
        • 1970-01-01
        • 2019-02-28
        • 2012-06-25
        • 1970-01-01
        相关资源
        最近更新 更多