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

£神魔★判官ぃ 2021-12-03 17:21 364阅读 0赞

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.

  1. class HomePage extends StatefulWidget {
  2. @override
  3. State<StatefulWidget> createState() => HomePageState();
  4. }
  5. class HomePageState extends State<HomePage> {
  6. @override
  7. Widget build(BuildContext context) {
  8. final loginBloc = BlocProvider.of<LoginBloc>(context);
  9. ...
  10. }
  11. }

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

  1. Navigator.push(context,
  2. MaterialPageRoute(builder: (context) {
  3. return BlocProvider(
  4. builder: (context) => SimpleBloc(),
  5. child: ARoute(),
  6. );
  7. }));

即可。

发表评论

表情:
评论列表 (有 0 条评论,364人围观)

还没有评论,来说两句吧...

相关阅读