当我试图在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);
}
}
3条答案
按热度按时间zlhcx6iw1#
解决方案是:
nx7onnlm2#
上述代码虽然看起来无害,但实际上可能会导致许多难以跟踪的 * 错误 *。由于使用了runZoned,因此在转换到 * BlocOverrides * API时发现了 * Flutter * 中的一些错误/限制
要修复此问题,请使用Bloc团队提供的以下方法创建***观察器***和***转换器***
fd3cxomn3#
对我来说,这起了作用:
之前:
);
之后: