模态底部表和块

时间:2020-06-29 12:05:45

标签: flutter bloc flutter-bloc

当我运行类似于以下代码的代码时,出现以下错误: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')
          );
    },
  );
}

1 个答案:

答案 0 :(得分:1)

您需要使用BlocProvider.value包裹showModalBottomSheet的构建器,如下所示: 由于上下文是新的。

return BlocProvider.value(
     value: BlocProvider.of<TheBloc>(context),
     child: MaterialButton( ...
     ...