【发布时间】:2019-12-24 03:28:26
【问题描述】:
我在一个小部件树中有一个 FloatingActionButton,它有一个来自 flutter_bloc 的 BlocProvider。像这样的:
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();
},
);
}
我正在尝试使用BlocProvider.of<SomeBloc>(context) 在TheBottomSheet 中访问SomeBloc,但出现以下错误:
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。 provider 包中的任何 Provider 都具有相同的行为。
如何在showModalBottomSheet 中访问BlocProvider.of<SomeBloc>(context)?
如果无法做到这一点,如何使https://stackoverflow.com/a/56533611/2457045 解决方案适应模态底页?
【问题讨论】:
标签: flutter bloc flutter-provider