gpt4 book ai didi

flutter - 使用不包含 Bloc 类型的上下文调用的 BlocProvider.of()

转载 作者:行者123 更新时间:2023-12-05 02:52:09 25 4
gpt4 key购买 nike

@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(),
)
);
}

处理手势时抛出以下断言:

  • BlocProvider.of() 在不包含 Bloc 类型的上下文中调用TripDetailBloc。
  • 从传递给的上下文开始找不到祖先BlocProvider.of <TripDetailBloc>() .
  • 如果您使用的上下文来自BlocProvider。
  • 他使用的上下文是:TripDetailPage(dependencies: [MediaQuery],状态:_TripDetailPageState#d4ab3)

最佳答案

将您的代码更改为:

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

如果你仔细观察,我已经将你的脚手架变成了一个小部件构建器。

关于flutter - 使用不包含 Bloc 类型的上下文调用的 BlocProvider.of(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62731117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com