gg1*_*g11 9 flutter bloc flutter-bloc
当我运行类似于以下代码的代码时,出现以下错误:使用不包含 Bloc 的上下文调用 BlocProvider.of()。
复制
BlocProvider(
create: (context) => getIt<TheBloc>()
child: BlocBuilder<TheBloc, TheState>(
build: (context, state) =>
MaterialButton(
onPressed: () => _showModal(context),
child: const Text('SHOW BLOC MODAL'),
),
Run Code Online (Sandbox Code Playgroud)
...
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')
);
},
);
}
Run Code Online (Sandbox Code Playgroud)
gg1*_*g11 17
您需要使用 BlocProvider.value 包装 showModalBottomSheet 的构建器,如下所示: 由于上下文是新的。
return BlocProvider.value(
value: BlocProvider.of<TheBloc>(context),
child: MaterialButton( ...
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10449 次 |
| 最近记录: |