22

BlocProviderfrom flutter_blocを持つウィジェットツリー内に FloatingActionButton があります。このようなもの:

BlocProvider(
  builder: (context) {
    SomeBloc someBloc = SomeBloc();
    someBloc.dispatch(SomeEvent());

    return someBloc;
  },
  child: Scaffold(
    body: ...
    floatingActionButton: FloatingActionButton(
      onPressed: _openFilterSchedule,
      child: Icon(Icons.filter_list),
    ),
  )
);

モーダルボトムシートを開きます:

void _openFilterSchedule() {
    showModalBottomSheet<void>(
      context: context,
      builder: (BuildContext context) {
        return TheBottomSheet();
      },
    );
  }

内部SomeBlocを使用してアクセスしようとしていますが、次のエラーが発生します。BlocProvider.of<SomeBloc>(context)TheBottomSheet

BlocProvider.of() called with a context that does not contain a Bloc of type SomeBloc.

https://stackoverflow.com/a/56533611/2457045で説明されているソリューションを使用しようとしましたが、 でのみ機能しBottomSheet、 では機能しませんModalBottomSheet


注: これはBlocProviderまたはに限定されませんflutter_blocプロバイダーパッケージのすべてのプロバイダーは、同じ動作をします。

BlocProvider.of<SomeBloc>(context)の内部にアクセスするにはどうすればよいshowModalBottomSheetですか?

それができない場合、https://stackoverflow.com/a/56533611/2457045ソリューションをモーダルボトムシートに適応させる方法は?

4

6 に答える 6