【发布时间】:2020-10-19 14:14:47
【问题描述】:
当我运行类似于以下代码的代码时出现以下错误:BlocProvider.of() 调用了一个不包含 Bloc 的上下文。
复制
BlocProvider(
create: (context) => getIt<TheBloc>()
child: BlocBuilder<TheBloc, TheState>(
build: (context, state) =>
MaterialButton(
onPressed: () => _showModal(context),
child: const Text('SHOW BLOC MODAL'),
),
...
void _showModal(BuildContext context) {
showModalBottomSheet<void>(
context: context,
builder: (_) {
return MaterialButton(
onPressed() {
context.bloc<TheBloc>().add(
TheEvent.someEvent(),
);
}
child: Text('Press button to add event to bloc')
);
},
);
}
【问题讨论】:
-
我审查了你的 sn-ps - 这个例子应该可以工作。我猜你真实代码中的某个地方的原因
-
@SergeySalnikov 问题是这段代码,我通过按照 bloc api 参考将模式的构建器包装在 BlocProvider.value 中来修复它。我已经添加了问题的答案。谢谢
标签: flutter bloc flutter-bloc