Flutter报错BlocProvider.of() called with a context that does not contain a Bloc of type **.

it2022-05-05  117

Flutter报错BlocProvider.of() called with a context that does not contain a Bloc of type **.

在使用flutter_bloc框架创建bloc时,出现报错BlocProvider.of() called with a context that does not contain a Bloc of type **.原因是在创建weight时,未给当前上下文提供bloc.

eg: 1.打开A页面,并在A页面中使用SimpleBloc. Navigator.push(context, MaterialPageRoute(builder: (context) => ARoute())); 2.在A页面中创建SimpleBloc.

class HomePage extends StatefulWidget { @override State<StatefulWidget> createState() => HomePageState(); } class HomePageState extends State<HomePage> { @override Widget build(BuildContext context) { final loginBloc = BlocProvider.of<LoginBloc>(context); ... } }

此时会收到上述报错异常,更正为:

Navigator.push(context, MaterialPageRoute(builder: (context) { return BlocProvider( builder: (context) => SimpleBloc(), child: ARoute(), ); }));

即可。


最新回复(0)