[英]BlocProvider.of() called with a context that does not contain a Bloc of type
@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider<TripDetailBloc>(create: (BuildContext context) => TripDetailBloc()),
BlocProvider<PopUpBloc>(create: (BuildContext context) => PopUpBloc()),
],
child: Scaffold(
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () {
BlocProvider.of<TripDetailBloc>(context).add(AddTripDetailPannelEvent());
},
),
appBar: appbar(),
body: pannel(),
)
);
}
The following assertion was thrown while handling a gesture:处理手势时抛出以下断言:
<TripDetailBloc>()
.<TripDetailBloc>()
的上下文开始找不到祖先。 Change your code to this:将您的代码更改为:
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider<TripDetailBloc>(create: (BuildContext context) => TripDetailBloc()),
BlocProvider<PopUpBloc>(create: (BuildContext context) => PopUpBloc()),
],
child: Builder(
builder: (context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () {
BlocProvider.of<TripDetailBloc>(context).add(AddTripDetailPannelEvent());
},
),
appBar: appbar(),
body: pannel(),
);
}
)
);
}
If you look closely, I have rapped your Scaffold into a widget builder.如果您仔细观察,我已将您的 Scaffold 敲击成一个小部件构建器。
Wrap your scaffold in a builder widget and use that context.将脚手架包装在构建器小部件中并使用该上下文。 The context the.of(context) is using is the same of the method build(BuildContext context), that's why it doesn't find it
the.of(context) 使用的上下文与方法 build(BuildContext context) 相同,这就是它找不到它的原因
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.